[英]Find all attributes in an XML using Beautiful Soup
I have an XML file which looks something like this: 我有一个看起来像这样的XML文件:
<tagA key1="val1" key2="val2" key3="val3">
<tagB.1 key1="val1" key2="val2" key3="val3"/>
<tagB.2 key1="val1" key2="val2" key3="val3"/>
<tagB.3 key1="val1" key2="val2" key3="val3"/>
<tagB.4 key1="val1" key2="val2" key3="val3"/>
<tagB.5 key1="val1" key2="val2" key3="val3"/>
</tagA>
What I am trying to do is extract the name of key1
, key2
and key3
in tagB.x
, and put them into a list. 我想要做的是在
tagB.x
提取key1
, key2
和key3
的tagB.x
,并将它们放入列表中。 This way I can extract the values of it later. 这样我以后可以提取它的值。 It should be able to handle more or less elements, being as each file is different.
它应该能够处理更多或更少的元素,因为每个文件都不同。 Thanks!
谢谢!
You should use an xml parser: 您应该使用xml解析器:
xml="""
<tagA key1="val1" key2="val2" key3="val3">
<tagB.1 key1="val1" key2="val2" key3="val3"/>
<tagB.2 key1="val1" key2="val2" key3="val3"/>
<tagB.3 key1="val1" key2="val2" key3="val3"/>
<tagB.4 key1="val1" key2="val2" key3="val3"/>
<tagB.5 key1="val1" key2="val2" key3="val3"/>
</tagA>
"""
import xml.etree.ElementTree as ET
root = ET.fromstring(xml)
for child in root:
print child.tag, child.attrib.keys()
tagB.1 ['key3', 'key2', 'key1']
tagB.2 ['key3', 'key2', 'key1']
tagB.3 ['key3', 'key2', 'key1']
tagB.4 ['key3', 'key2', 'key1']
tagB.5 ['key3', 'key2', 'key1']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.