一隐孽、什么是XML翰撑?
XML指可擴(kuò)展標(biāo)記語言
XML是一種標(biāo)記語句置吓,很類似HTML
XML標(biāo)簽沒有被預(yù)定義,需要自行定義標(biāo)簽
二边涕、XML和HTML的差異:
- XML為不同的目的而設(shè)計(jì)
- XML被設(shè)計(jì)為傳輸和存儲(chǔ)數(shù)據(jù)晤碘,其焦點(diǎn)是數(shù)據(jù)的內(nèi)容,HTML被設(shè)計(jì)用來顯示數(shù)據(jù)功蜓, 其焦點(diǎn)是數(shù)據(jù)的外觀
- XML意在傳輸信息园爷,而HTML意在顯示信息
三、XML的特點(diǎn)
- XML可以自定義標(biāo)簽
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
上例中的標(biāo)簽沒有在任何XML標(biāo)準(zhǔn)中定義過霞赫,比如<to><from>這些標(biāo)簽都是有作者自己發(fā)明的
- XML必須包含根元素
XML 文檔必須有一個(gè)元素是所有其他元素的父元素腮介。該元素稱為根元素。
<?xml version="1.0" encoding="UTF-8" ?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
如上所示端衰,XML文件的根元素為note,剩下的4行描述的是根的子元素
所有的XML標(biāo)簽都必須有關(guān)閉標(biāo)簽叠洗,在XML中省略標(biāo)簽是非法的,所有的元素都必須有關(guān)閉標(biāo)簽旅东。
如下所示:
<p>This is a paragraph</p>
<p>This is another paragraph</p>
- XML標(biāo)簽對(duì)大小寫敏感
XML 標(biāo)簽對(duì)大小寫敏感灭抑。在 XML 中,標(biāo)簽 <Letter> 與標(biāo)簽 <letter> 是不同的抵代。
必須使用相同的大小寫來編寫打開標(biāo)簽和關(guān)閉標(biāo)簽:
<Message>這是錯(cuò)誤的腾节。</message>
<message>這是正確的。</message>
XML必須正確的嵌套:如下所示:由于 <i> 元素是在 <b> 元素內(nèi)打開的,那么它必須在 <b> 元素內(nèi)關(guān)閉案腺。
<b><i>This text is bold and italic</i></b>
- XML 的屬性值須加引號(hào)
與 HTML 類似庆冕,XML 也可擁有屬性(名稱/值的對(duì))。
在XML 中劈榨,XML的屬性值須加引號(hào)访递。請(qǐng)研究下面的兩個(gè)XML文檔。第一個(gè)是錯(cuò)誤的同辣,第二個(gè)是正確的:<note date=08/08/2008> <to>George</to> <from>John</from> </note> <note date="08/08/2008"> <to>George</to> <from>John</from> </note>
在第一個(gè)文檔中的錯(cuò)誤是拷姿,note 元素中的 date 屬性沒有加引號(hào)。
- 標(biāo)簽可以自由命名
- 標(biāo)簽成對(duì)出現(xiàn)
- 標(biāo)簽可以重名
四旱函、XML 中的注釋
在 XML 中編寫注釋的語法與 HTML 的語法很相似:
<!-- This is a comment -->
五响巢、什么是 XML 元素?
XML 元素指的是從(且包括)開始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分棒妨。
元素可包含其他元素踪古、文本或者兩者的混合物。元素也可以擁有屬性靶衍。
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上例中灾炭,<bookstore> 和 <book> 都擁有元素內(nèi)容,因?yàn)樗鼈儼似渌亍?lt;author> 只有文本內(nèi)容颅眶,因?yàn)樗鼉H包含文本蜈出。
在上例中,只有 <book> 元素?fù)碛袑傩?(category="CHILDREN")涛酗。
六铡原、XML 命名規(guī)則
XML 元素必須遵循以下命名規(guī)則:
- 名稱可以含字母、數(shù)字以及其他的字符
- 名稱不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開始
- 名稱不能以字符 “xml”(或者 XML商叹、Xml)開始
- 名稱不能包含空格
七燕刻、XML讀取文本
from xml.dom import minidom
打開文件
root =minidom.parse(filepath)
firstnode =root.getElementsByTagName(onenode)[0]
secondnode=firstnode.getElementsByTagName(twonodee)[0].firstChild.data