对比分析json及XML(2)

  与 HTML 类似,XML 也可拥有属性(名称/值的对)。 在 XML 中,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 &lt; 1000 then</message>

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

复制代码 代码如下:


&lt;    <   小于
&gt;    >   大于
&amp;   &   和号
'  '   单引号
&quot;  "   引号

  注释:在 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)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgswyx.html