使用Beautiful Soup查找XML中的所有属性

0 投票
1 回答
641 浏览
提问于 2025-04-18 18:18

我有一个看起来像这样的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>

我想做的是提取里面的key1key2key3的名字,然后把它们放到一个列表里。这样我就可以后续提取它们的值。这个过程应该能处理多一些或少一些的元素,因为每个文件都不一样。谢谢!

1 个回答

2

你应该使用一个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']

撰写回答