请帮助,Python初学者,
从 xml 获取所有数据后, data_list = xmlTree.findall('.//data') 例如在这里我得到 10 行现在,我只需要保留几行属性“名称”值与另一个列表的元素匹配的行(inputID) 里面有三个 ID。例如,仅保留 3 行其名称属性与列表元素匹配的行
谢谢你。
您可以使用 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')
您可以使用从树中删除节点
current_node.getparent().remove(current_node)