2

请帮助,Python初学者,

从 xml 获取所有数据后, data_list = xmlTree.findall('.//data') 例如在这里我得到 10 行现在,我只需要保留几行属性“名称”值与另一个列表的元素匹配的行(inputID) 里面有三个 ID。例如,仅保留 3 行其名称属性与列表元素匹配的行

谢谢你。

4

2 回答 2

1

您可以使用 for 循环遍历每个元素,然后决定是否应删除每个元素。我使用 Python 文档ElementTree XML API作为参考。

from xml.etree.ElementTree import ElementTree

tree = ElementTree()

# Test input
tree.parse("sample.xml")

# List containing names you want to keep
inputID = ['name1', 'name2', 'name3']

for node in tree.findall('.//data'):
    # Remove node if the name attribute value is not in inputID
    if not node.attrib.get('name') in inputID:
        tree.getroot().remove(node)

# Do what you want with the modified xml
tree.write('sample_out.xml')
于 2012-08-08T16:06:11.160 回答
0

您可以使用从树中删除节点

current_node.getparent().remove(current_node)
于 2012-08-08T14:36:54.040 回答