如何用Python解析嵌套XML标签?
请原谅我如果用错了术语,但我想说的是,我想从一些嵌套的标签中提取属性和文本信息,比如别名、支付、金额等等。不过,我的示例代码只能从某个标签中提取信息,而无法从这个标签里的子元素中提取。
我该如何使用elementtree来获取子元素的子元素呢?如果我用错了术语,请见谅:
- 示例XML块:
**
<root>
<host name="comp1">
<alias>smith_laptop</alias>
<ipAddr>102.168.1.1</ipAddr>
<owner>Mr_Smith</owner>
<payment type="credit">
<card type="Master Card"/>
<amount>125.99</amount>
<cardOwner name="John Smith"/>
<expiration date="Oct 24"/>
</payment>
</host>
<host name="comp2">
<alias>matt_laptop</alias>
<ipAddr>102.168.1.2</ipAddr>
<owner>Mr_Mat</owner>
<payment type="cash">
<amount>100.00</amount>
</payment>
</host>
</root>
**
- 代码片段:
**
import os
from xml.etree import ElementTree as ET
def main():
rootElement = ET.parse("text.xml").getroot()
for subelement in rootElement:
print "Tag: ",subelement.tag
print "Text: ",subelement.text
print "Aribute:",subelement.attrib,"\n"
print "Items:",subelement.items(),"\n"
if __name__ == "__main__":
main()
1 个回答
4
subelement.getchildren()
for subelement in rootElement:
...
for subsub in subelement:
print subsub.tag
或者