Xml标准解析 - littleboy12580/learning_python GitHub Wiki

XML即可扩展标记语言(eXtensible Markup Language)。它的主要作用是简化数据的存储以及数据的传输分享

XML树结构

下面是一个XML文档的实例

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

第一行是 XML 声明,它定义 XML 的版本和所使用的编码;第二行描述xml文档的根元素,后面4个则是根的4个子元素;最后则是定义根元素的结尾。
XML文档中的元素形成了一棵文档树;这棵树从根部开始,并扩展到树的最底端;因此xml文档必须含有根元素;所有元素均可拥有文本内容和属性

XML语法规则

  1. 所有 XML 元素都须有关闭标签(声明不是xml元素,不需要关闭标签)
  2. XML 标签对大小写敏感
    在XML中,标签与标签是不同的;必须使用相同的大小写来编写打开标签和关闭标签
  3. XML 必须正确地嵌套
  4. XML 文档必须有根元素
  5. XML 的属性值须加引号
  6. 实体引用
    在 XML 中,一些字符拥有特殊的意义;如果你把字符 “<” 放在 XML 元素中,会发生错误;这是因为解析器会把它当作新元素的开始,这样会产生 XML 错误;为了避免这个错误,请用实体引用来代替 "<" 字符。
    在 XML 中,有 5 个预定义的实体引用:
&lt; < 小于
&gt; > 大于
&amp; & 和号
&apos; ' 单引号
&quot; " 引号
  1. XML 中的注释
    在 XML 中编写注释的语法与 HTML 的语法很相似:
<!-- This is a comment --> 
  1. 在 XML 中,空格会被保留
  2. 以 LF 存储换行

XML命名规则

  • 名称可以含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字符 “xml”(或者 XML、Xml)开始
  • 名称不能包含空格

XML元素与属性

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分;元素可包含其他元素、文本或者两者的混合物,元素也可以拥有属性
XML 属性提供元素的额外信息,属性的值必须加上引号

<person sex="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person> 

<person>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person> 

在上面的例子中,第一个sex是属性,第二个sex是元素;
在xml中尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息,理由如下:

  1. 属性无法包含多重的值(元素可以)
  2. 属性无法描述树结构(元素可以)
  3. 属性不易扩展(为未来的变化)
  4. 属性难以阅读和维护

针对元数据的 XML 属性

有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 ID 属性是一样的,如下例所示:

<messages>
  <note id="501">
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
  </note>
  <note id="502">
    <to>John</to>
    <from>George</from>
    <heading>Re: Reminder</heading>
    <body>I will not</body>
  </note> 
</messages>

在xml中,元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素

⚠️ **GitHub.com Fallback** ⚠️