Python Anfänger benötigt Hilfe beim Filtern von .xml-Dateien. Ich habe versucht mit xml.etree.ElementTree mit wenig Erfolg.Filter xml/nessus Scan mit Python ElementTree
Die XML wie folgt aussieht:
<ClientData>
<Report>
<ReportHost>
<ReportItem pluginID="11111">
Ipsum lorem etc leviosa!
</ReportItem>
</ReportHost>
<ReportHost>
<ReportItem pluginID="22222">
Sed ut perspiciatis unde omnis iste
</ReportItem>
</ReportHost>
</Report>
</ClientData>
Wenn die ReportItem.pluginID auf einer schwarzen Liste ein Element übereinstimmt, würde Ich mag das gesamte Element (ReportItem) zusammen mit seinen Kindern entfernen, dann die gefilterte schreiben. XML. Vielen Dank!
Bearbeiten - Hier ist, was ich bisher habe, aber ich bin mir nicht sicher, wie es mit dieser Ebene der Verschachtelung zur Arbeit kommen:
from xml.etree.ElementTree import ElementTree
tree = ElementTree()
# Test input
tree.parse("test.xml")
for node in tree.findall('ReportItem'):
if tag.attrib['pluginID']=='11111':
tree.remove(node)
tree.write('test_out.xml')
können Sie das 'if' überprüfen, indem die Logik in XPath entfernen etwa so:' für Elem in doc.xpath ('// * [@ PluginID = "{0}"]' % nessusID.strip ('\ n')): ' – har07