Python練習之讀取XML節點和屬性值的方法

面試題

有一個test.xml文件,要求讀取該文件中products節點的所有子節點的值以及子節點的屬性值。

test.xml文件:

<!-- products.xml -->
<root>
    <products>
        <product uuid='1234'>
            <id>10000</id>
            <name>蘋果</name>
            <price>99999</price>
        </product>
        <product uuid='1235'>
            <id>10001</id>
            <name>小米</name>
            <price>999</price>
        </product>
        <product uuid='1236'>
            <id>10002</id>
            <name>華為</name>
            <price>9999</price>
        </product>
    </products>
</root>

解析

# coding=utf-8
from xml.etree.ElementTree import parse
doc = parse('./products.xml')
print(type(doc))

for item in doc.iterfind('products/product'):
    id = item.findtext('id')
    name = item.findtext('name')
    price = item.findtext('price')
    uuid = item.get('uuid')
    print('uuid={}, id={}, name={}, price={}'.format(uuid, id, name, price), end='\n----------\n')

  • 通過parse函數可以讀取XML文檔,該函數返回ElementTree類型的對象,通過該對象的iterfind方法可以對XML中特定節點進行迭代。
  • XML結構的獨特,使得它很方便在任何應用程序中讀和寫數據,所以XML非常快就成為數據交換的唯一公共語言,雖然不同軟件也支持其他的數據交換格式,但這並不影響,支持XML數據交換格式的應用程序可以十分容易的與windows,linux或者其他平臺產生的信息結合,然後可以十分方便的加載XML數據到程序中並分析它,最後以XML格式輸出結果。
  • 不過細心的朋友應該能發現,這個格式的數據與我們在爬蟲爬取數據時,未經處理的原始數據格式十分相像,甚至讀取操作都幾乎一模一樣,有興趣的朋友可以自行去搜索看看這兩種數據格式的背景哦

到此這篇關於Python練習之讀取XML節點和屬性值的方法的文章就介紹到這瞭,更多相關Python讀取XML內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: