2

助けてください、Python初心者、

xmlからすべてのデータを取得した後、 data_list = xmlTree.findall('.// data') たとえば、ここでは10行を取得します。ここで、属性'name'の値が別のリストの要素と一致する行を数行だけ保持する必要があります。 (inputID)内部に3つのIDがあります。たとえば、name属性がリスト要素と一致する3行のみが残ります

ありがとうございました。

4

2 に答える 2

1

forループを使用して各要素を反復処理し、各要素を削除するかどうかを決定できます。参考までにPythondocElementTreeXMLAPIを使用しました。

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 に答える