Ich möchte das gesamte Tag zu XML hinzufügen, unten ist mein XML-Format.Python: das Hinzufügen neuer Daten in XML überlagert vorhandene Daten
<?xml version="1.0" encoding="UTF-8"?>
<ca st="true" name="XMLConfig">
<app>
<!--- I want to add entire commneted tag to XML . !
<ar ty="co" name="st">
<ly ty="pt">
<pt>value</pt>
</Layout>
</ar> -->
<roll name="roll" fN="file.log" fP="logs.gz">
<ly type="ptl">
<pt>value</pt>
</ly>
<po>
<!-- Comment /> -->
<si size="100 MB" />
<!-- Comment /> -->
</po>
<de fI="max" max="10"/>
</roll>
</app>
wie in oben Datei angezeigt Ich möchte diesen Tag in der Datei
<ar ty="co" name="st">
<ly ty="pt">
<pt>value</pt>
</Layout>
</ar>
das ist, wo ich bisher ..
for appenders in tree.xpath('//Appenders'):
if appenders.getchildren():
appenders.remove(appenders.getchildren()[0])
appenders.insert(0, appenders.getparent().append(etree.fromstring('<ar ty="co" name="st"> <ly ty="pt"><pt>value</pt></Layout></ar>')))
dies alle anderen Inhalte zu entfernen erreicht hinzuzufügen, nachdem neuer Inhalt. jede Hilfe wird geschätzt.!
Einverstanden, ich ging zurück und überprüft dies. Die erste Methode funktioniert so wie sie sollte. Danke für die Antwort,! Am 1.: Weil XML-Datei mehr als 200 Zeilen hat .. und ich denke, dass alle diese Details nicht benötigt werden. Am 2.: werde ich das ab jetzt onwords .. aufpassen! – tgcloud
Ja, der erste Weg, den ich gemacht habe, ist mir appenders.insert (0, None) zu geben und Ausnahme zu werfen. aber ich schwöre, es funktionierte für mich vorher (Entfernen aller anderen Inhalte nach neuen Inhalten). Ich denke, ich habe etwas versaut, während ich den Code gepostet habe (ich sollte überhaupt keine Änderungen an Variablen vornehmen) – tgcloud