關於python讀取xml文章很多,但大多文章都是貼壹個xml文件,然後再貼個處理文件的代碼。這樣並不利於初學者的學習,希望這篇文章可以更通俗易懂的教如何使用python?來讀取xml?文件。
什麽是xml?
xml即可擴展標記語言,它可以用來標記數據、定義數據類型,是壹種允許用戶對自己的標記語言進行定義的源語言。
abc.xml
<?xml version="1.0" encoding="utf-8"?><catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption>測試</caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item></catalog>
Ok?,從結構上,它很像我們常見的HTML超文本標記語言。但他們被設計的目的是不同的,超文本標記語言被設計用來顯示數據,其焦點是數據的外觀。它被設計用來傳輸和存儲數據,其焦點是數據的內容。
那麽它有如下特征:
首先,它是有標簽對組成,<aa></aa>
標簽可以有屬性:<aa?id=’123’></aa>
標簽對可以嵌入數據:<aa>abc</aa>
標簽可以嵌入子標簽(具有層級關系):
<aa>
<bb></bb>
</aa>
獲得標簽屬性
那麽,下面來介紹如何用python來讀取這種類型的文件。
#coding=utf-8import ?xml.dom.minidom#打開xml文檔dom = xml.dom.minidom.parse('abc.xml')#得到文檔元素對象root = dom.documentElementprint root.nodeNameprint root.nodeValueprint root.nodeTypeprint root.ELEMENT_NODE
mxl.dom.minidom?模塊被用來處理xml文件,所以要先引入。
xml.dom.minidom.parse()?用於打開壹個xml文件,並將這個文件對象dom變量。
documentElement?用於得到dom對象的文檔元素,並把獲得的對象給root
每壹個結點都有它的nodeName,nodeValue,nodeType屬性。
nodeName為結點名字。
nodeValue是結點的值,只對文本結點有效。
nodeType是結點的類型。catalog是ELEMENT_NODE類型
現在有以下幾種:
'ATTRIBUTE_NODE'
'CDATA_SECTION_NODE'
'COMMENT_NODE'
'DOCUMENT_FRAGMENT_NODE'
'DOCUMENT_NODE'
'DOCUMENT_TYPE_NODE'
'ELEMENT_NODE'
'ENTITY_NODE'
'ENTITY_REFERENCE_NODE'
'NOTATION_NODE'
'PROCESSING_INSTRUCTION_NODE'
'TEXT_NODE'
NodeTypes?-?有名常數