首页 > 代码库 > Python XML

Python XML

2017-07-24 22:58:16

xml 和 json 都是数据交互的格式。

想象一下,python中的字典数据要传给java使用,但是众所周知的是java中只有hashmap数据结构,并没有字典,所以在传输时需要对python中的数据进行序列化操作,就是讲字典数据转成xml或者json格式,在java接收端,进行反序列化,将xml 或者 json转换为自己需要的格式。

不是说都要进行模式转换的,不过当双方通信时,数据无法正确接收和传输的时候,就需要进行模式转换了。

一、xml

  • XML 指可扩展标记语言(EXtensible Markup Language)。
  • XML 是一种很像HTML的标记语言。
  • XML 的设计宗旨是传输数据,而不是显示数据。
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准。

xml 和 html的区别:

XML 不是 HTML 的替代。

XML 和 HTML 为不同的目的而设计:

  • XML 被设计用来传输和存储数据,其焦点是数据的内容。
  • HTML 被设计用来显示数据,其焦点是数据的外观。

HTML 旨在显示信息,而 XML 旨在传输信息。

xml 的树结构

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don‘t forget me this weekend!</body>
</note>

第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)。

下一行描述文档的根元素(像在说:"本文档是一个便签")

接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body)

后一行定义根元素的结尾

您可以假设,从这个实例中,XML 文档包含了一张 Jani 写给 Tove 的便签。

父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。所有的元素都可以有文本内容和属性(类似 HTML 中)。

举个例子:

技术分享

<bookstore>
    <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
        <book category="WEB">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

上图和xml 代码一一对应。

xml还有一些语法要求诸如必须要有根元素,大小写敏感等要求,还有格式限制等,具体可以参照http://www.runoob.com/python3/python3-xml-processing.html

 

Python XML