XML关键知识点

前端之家收集整理的这篇文章主要介绍了XML关键知识点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  1. 第一行 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)

XML 文档形成一种树结构

XML 文档必须包含根元素。该元素是所有其他元素的父元素。

XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

所有元素均可拥有子元素:

  1. <root>
  1. <child>
  1. <subchild>.....</subchild>
  1. </child>
  1. </root>

父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。

所有元素均可拥有文本内容属性

在 XML 中,省略关闭标签是非法的。所有元素都必须关闭标签

  1. <p>This is a paragraph</p>
  1. <p>This is another paragraph</p>
  1. XML 声明没有关闭标签。这不是错误声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签
  1. XML 标签对大小写敏感

  2. XML 元素使用 XML 标签进行定义。

  3. XML 标签对大小写敏感。在 XML 中,标签 <Letter> 标签 <letter> 是不同的

  4. XML 文档必须有根元素

  5. XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素

  6. XML 属性值须加引号

  7. <note >
  8. <to>George</to>
  9. <from>John</from>
  10. </note> 

  11. 实体引用

  12. XML 中,一些字符拥有特殊的意义。

  13. 如果你把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

  14. 这样会产生 XML 错误

  15. <message>if salary < 1000 then</message>
  16. 为了避免这个错误请用实体引用来代替 "<" 字符:

  17. <message>if salary  1000 then</message> 
  18. XML 中,有 5 个预定义的实体引用:

  19. &amp;&apos;&quot;
  20. &lt;
  21. <
  22. 小于
  23. &gt;
  24. >
  25. 大于
  26. &
  27. 和号
  28. '
  29. 单引号
  30. "
  31. 引号
  32. 注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。


  33. XML 以 LF 存储换行

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


  35. 什么是 XML 元素?

  36. XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

  37. 元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性

  38. <bookstore>
  39. <book category="CHILDREN">
  40.   <title>Harry Potter</title> 
  41.   <author>J K. Rowling</author> 
  42.   <year>2005</year> 
  43.   <price>29.99</price> 
  44. </book>
  45. <book category="WEB">
  46.   <title>Learning XML</title> 
  47.   <author>Erik T. Ray</author> 
  48.   <year>2003</year> 
  49.   <price>39.95</price> 
  50. </book>
  51. </bookstore> 
  52. 在上例中,<bookstore> 和 <book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。

  53. 在上例中,只有 <book> 元素拥有属性(category="CHILDREN")。



  54. XML 命名规则

  55. XML 元素必须遵循以下命名规则:

    • 名称可以含字母、数字以及其他的字符
    • 名称不能以字符 “xml”(或者 XML、Xml)开始
  56. 可使用任何名称,没有保留的字词。


  57. XML 元素可以在开始标签中包含属性,类似 HTML。

  58. 属性 (Attribute) 提供关于元素的额外(附加)信息。



  59. XML 属性必须加引号

  60. 属性值必须被引号包围,不过单引号和双引号均可使用。比如一个人的性别,person 标签可以这样写:


  61. 在 XML 中,您应该尽量避免使用属性如果信息感觉起来很像数据,那么请使用子元素吧


  62. 元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

  63. 拥有正确语法的 XML 被称为“形式良好”的 XML。

  64. 通过 DTD 验证的 XML 是“合法”的 XML。

  65. 形式良好的 XML 文档

  66. “形式良好”或“结构良好”的 XML 文档拥有正确的语法。

  67. “形式良好”(Well Formed)的 XML 文档会遵守前几章介绍过的 XML 语法规则:

    • XML 文档必须有根元素
    • XML 标签对大小写敏感
    • XML 元素必须被正确的嵌套

  68. XML DTD

  69. DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:


  70. XML Schema

  71. W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:



  72. 几乎所有的主流浏览器均支持 XML 和 XSLT。



  73. 所有现代浏览器都内建了供读取和操作 XML 的 XML 解析器。

  74. 解析器把 XML 转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象


  75. DOM (Document Object Model,文档对象模型)定义了访问和操作文档的标准方法


  76. XML DOM

  77. XML DOM (XML Document Object Model) 定义了访问和操作 XML 文档的标准方法

  78. DOM 把 XML 文档作为树结构来查看。能够通过 DOM 树来访问所有元素。可以修改删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。


  79. 在下面的例子中,我们使用 DOM 引用从 <to> 元素中获取文本:

  80. xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
    • xmlDoc-由解析器创建的 XML 文档
    • getElementsByTagName("to")[0]- 第一个 <to> 元素
    • childNodes[0]- <to> 元素的第一个子元素(文本节点)
    • nodeValue- 节点的值(文本本身)


  81. XML 命名空间提供避免元素命名冲突的方法

  82. 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
  83. 使用前缀来避免命名冲突



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

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



  86. PCDATA

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

  88. XML 解析器通常会解析 XML 文档中所有的文本。

  89. 当某个 XML 元素被解析时,其标签之间的文本也会被解析:



  90. CDATA

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

  92. 在 XML 元素中,"<" 和 "&" 是非法的。

  93. "<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

  94. "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。

  95. 某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

  96. CDATA 部分中的所有内容都会被解析器忽略。

  97. CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

  98. <script>
  99. <![CDATA[
  100. function matchwo(a,b)
  101. {
  102. if (a < b && a < 0) then
  103.   {
  104.   return 1;
  105.   }
  106. else
  107.   {
  108.   return 0;
  109.   }
  110. }
  111. ]]>
  112. </script>
  113. 在上面的例子中,解析器会忽略 CDATA 部分中的所有内容




  114. XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法

  115. DOM 把 XML 文档视为一种树结构。通过这个 DOM 树,可以访问所有的元素。可以修改它们的内容(文本以及属性),而且可以创建新的元素。元素,以及它们的文本和属性,均被视为节点。

  116. 创建元素

  117. createElement() 方法创建新的元素节点。

  118. createTextNode() 方法创建新的文本节点。

  119. appendChild() 方法向节点添加子节点(在最后一个子节点之后)。

  120. 如需创建带有文本内容的新元素,需要同时创建元素节点和文本节点。

  121. 下面的代码创建了一个元素 (<edition>),然后把它添加到第一个 <book> 元素中:

  122. newel=xmlDoc.createElement("edition");
  123. newtext=xmlDoc.createTextNode("First");
  124. newel.appendChild(newtext);
  125. x=xmlDoc.getElementsByTagName("book");
  126. x[0].appendChild(newel);
  127. 例子解释:

    1. 创建 <edition> 元素
    1. 创建值为 "First" 的文本节点
    1. 把这个文本节点追加到 <edition> 元素
    1. 把 <edition> 元素追加到第一个 <book> 元素


  128. XML 是基于文本的
  129. XML 是基于文本的标记语言。

  130. 关于 XML 的一件很重要的事情是,XML 可被类似记事本这样的简单的文本编辑器来创建和编辑。

  131. 不过,在您开始使用 XML 进行工作时,您很快会发现,使用一款专业的 XML 编辑器来编辑 XML 文档会更好。

  132. date="08/08/2008"&lt;

猜你在找的XML相关文章