JSON

对比分析json及XML【站长博客网】(2)

字号+ 作者:H5之家 来源:H5之家 2017-05-12 13:06 我要评论( )

note date=08/08/2008 toGeorge/to fromJohn/from /note note date="08/08/2008" toGeorge/to fromJohn/from /note 1.2.6 实体引用 在 XML 中,一些字符拥有特殊的意义。 如果你把字符 “” 放在 XML 元素中,会发


<note date=08/08/2008>
<to>George</to>
<from>John</from>
</note>
<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note>

  1.2.6 实体引用

  在 XML 中,一些字符拥有特殊的意义。 如果你把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。 这样会产生 XML 错误:

复制代码 代码如下:


<message>if salary < 1000 then</message>

  为了避免这个错误,请用实体引用来代替 “<” 字符:

复制代码 代码如下:


<message>if salary < 1000 then</message>

  在 XML 中,有 5 个预定义的实体引用:

复制代码 代码如下:


<    <   小于
>    >   大于
&   &   和号
'  '   单引号
"  "   引号

  注释:在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

  1.2.7 XML中的注释

  在 XML 中编写注释的语法与 HTML 的语法很相似:

复制代码 代码如下:


<!-- This is a comment -->

  在 XML 中,空格会被保留 HTML 会把多个连续的空格字符裁减(合并)为一个:

复制代码 代码如下:


HTML:   Hello           my name is David.

  输出: Hello my name is David. 在 XML 中,文档中的空格不会被删节。

  1.2.8 以 LF 存储换行

  在 Windows 应用程序中,换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。这对字符与打字机设置新行的动作有相似之处。在 Unix 应用程序中,新行以 LF 字符存储。而 Macintosh 应用程序使用CR来存储新行。

 1.3 XML CDATA

  所有XML文档中的文本均会被解析器解析。

  只有CDATA区段(CDATA section)中的文本会被解析器忽略。

  1.3.1 PCDATA

  PCDATA指的是被解析的字符数据(Parsed Character Data)。

  XML解析器通常会解析XML文档中所有的文本。 当某个XML元素被解析时,其标签之间的文本也会被解析:

复制代码 代码如下:


<message>此文本也会被解析</message>

  解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的元素包含着另外的两个元素(first和last):

复制代码 代码如下:


<name><first>Bill</first><last>Gates</last></name>

  而解析器会把它分解为像这样的子元素:

复制代码 代码如下:


<name>
   <first>Bill</first>
   <last>Gates</last>
</name>

  1.3.2 转义字符

  非法的XML字符必须被替换为实体引用(entity reference)。

  假如您在XML文档中放置了一个类似 “<” 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:

复制代码 代码如下:


<message>if salary < 1000 then</message>

  为了避免此类错误,需要把字符 “<” 替换为实体引用,就像这样:

复制代码 代码如下:


<message>if salary < 1000 then</message>

  在 XML 中有 5 个预定义的实体引用:

复制代码 代码如下:


<    <   小于
>    >   大于
&   &   和号
'  '   省略号
"  "   引号

  注释:严格地讲,在XML中仅有字符”<“和”&“是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。

  1.3.3 CDATA

  术语CDATA指的是不应由XML解析器进行解析的文本数据(Unparsed Character Data)。

  在 XML 元素中,”<“ 和 ”&“ 是非法的。

  “<” 会产生错误,因为解析器会把该字符解释为新元素的开始。 “&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始。

  某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA。 CDATA 部分中的所有内容都会被解析器忽略。 CDATA 部分由 “<![CDATA[” 开始,由 “]]>” 结束:

复制代码 代码如下:


<?xml version="1.0" encoding="utf-8"?>
<response>
  <header>
    <respcode>0</respcode> 
    <total>1736</total>
  </header> 
  <result>
    <album>
      <album_id>320305900</album_id> 
      <title> <![CDATA[ 电影侃侃之初恋永不早 ]]> </title> 
      <tag> <![CDATA[ 18岁以上 当代 暧昧 华语 ]]> </tag> 
      <img></img> 
      <img180236></img180236> 
      <img11577></img11577> 
      <img220124></img220124> 
      <category_id>1</category_id> 
      <score>0.0</score> 
      <voters>0</voters> 
      <tv_sets>0</tv_sets> 
      <duration>00:38:57</duration> 
      <year> <![CDATA[ 2014 ]]> </year> 
      <tv_focus>跟爱情片学把妹心经</tv_focus> 
      <episode_count>1</episode_count> 
      <directors> <![CDATA[ 关雅荻 ]]> </directors> 
      <mainactors> <![CDATA[ 关雅荻 ]]> </mainactors> 
      <actors> <![CDATA[ ]]> </actors> 
      <vv2> <![CDATA[ 15 ]]> </vv2> 
      <timeText> <![CDATA[ 今天 ]]> </timeText> 
      <first_issue_time> <![CDATA[ 2014-10-16 ]]> </first_issue_time> 
      <up>0</up> 
      <down>0</down> 
      <download>1</download> 
      <purchase_type>0</purchase_type> 
      <hot_or_new>0</hot_or_new> 
      <createtime>2014-10-16 12:25:08</createtime> 
      <purchase>0</purchase> 
      <desc> <![CDATA[
本期节目主持人介绍新近上映的口碑爱情片,。主持人轻松幽默的罗列出胡鳄鱼导演拍摄的爱情片越来越接地气,博得观众的认同和追捧,更提出“初恋永远不嫌早”的口号。观众可以跟着爱情片学习把妹心经。
]]> </desc> 
      <ip_limit>1</ip_limit> 
      <episodes/>
    </album>
  </result>
</response>

  这是展示一部电影的具体数据,包括标题、介绍、内容、导演、演员、时长、上映年份等很多内容。

 1.5 XML树结构

  XML文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。

  1.5.1 一个XML文档实例

  XML使用简单的具有自我描述性的语法:

复制代码 代码如下:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • json对日期的处置

    json对日期的处置

    2017-05-12 14:05

  • Python学习笔记之解析json的方法分析【站长博客网】

    Python学习笔记之解析json的方法分析【站长博客网】

    2017-05-10 17:07

  • iis支持json 配置iis支持json格式的文件教材

    iis支持json 配置iis支持json格式的文件教材

    2017-05-10 12:00

  • 如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码

    如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码

    2017-05-10 11:15

网友点评