簡體   English   中英

在Python中使用ElementTree從xml中獲取數據

[英]Fetch data from xml using ElementTree in Python

我正在嘗試從xml文件中提取一些數據。 下面給出的是xml的外觀。

<?xml version="1.0" encoding="UTF-8"?>
<Stores>
  <Store>
<Action>new</Action>
<StoreID>1001</StoreID>
<EmpID/>
<Agent>
  <Name/>
  <EmpName>Scott</EmpName>
</Name>
<BillData>
  <BillInfo>
    <Action>new</Action>
    <CustName></CustName>
    <BillNumber>3343</BillNumber>
   </BillInfo>
  </BillData>
 </Store>
</Stores>

我試圖從上述數據集中獲取每個列及其數據。 以下是我到目前為止所取得的成就:

import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
root = tree.getroot()
    for elem in root:
        for subelem in elem:
        print(subelem.tag)
        print(subelem.text)

輸出如下:

Action
new
StoreID
1001
Agent


BillData

我正在嘗試提取子級的數據。 任何人都可以建議我如何提取存儲在“ BillInfo”下的數據

Action
new
CustName
BillNumber
3343

如果要遞歸遍歷XML樹中的所有元素,則應使用iter方法。 類似於以下內容的東西應該可以讓您想要:

import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
for elem in tree.iter():
    print(elem.tag)
    print(elem.text)

簡單的遞歸函數可以實現您想要的:

import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
root = tree.getroot()
search(root)

def search(elem):
    for e in elem:
        print(e.tag)
        print(e.text)
        search(e)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM