2017-10-09 2 views
1

Ich habe eine Liste von Artikeln. Ich parze existierende Datei, wenn ich diese Elemente finde, dann aktualisiere ich die benötigten Felder, aber wenn ich diese Elemente in der Datei nicht finde, dann möchte ich sie am Ende der Datei hinzufügen (Liste der Elemente xml). Als nächstes in Code, also sollte es das letzte Element in der Listenschleife finden und neu danach schreiben.Wie xml-Knoten mehrmals mit VTD-XML hinzufügen?

String newNode = createNewItem(listItem); //get xml string 
ap.selectXPath("//item[last()]"); 
index = ap.evalXPath(); 
if (index != -1) { 
    xm.insertAfterElement(newNode); 
} 

Nach Schleife ich speichern Sie die Änderungen:

xm.output(updatedFile); 

Aber in den Ergebnissen kann ich sehen, dass nur ein Element Datei wurde hinzugefügt. Andere verpasst. Wie füge ich alle Artikel hinzu?

Antwort

0

Dies ist ein häufiges Problem für Leute, die neu in VTD-XML sind. Ihre App-Logik sollte sich um den Matching-Prozess kümmern. Dann erstellen Sie das Fragment, das Sie dann in einem Schritt am Ende Ihrer XML-Datei einfügen.

Angenommen, Ihre Liste enthält drei Elemente: a, b und c. Ihre App-Logik sollte das XML-Dokument abfragen, um zu bestimmen, dass a und c nach dem Ende des XML-Dokuments eingefügt werden sollen. Ihre App muss die Concatnation des XML-Fragments, das a und c darstellt, erstellen. Schließlich fügt Ihre App diese Repräsentation nach dem letzten Element in Ihrem XML-Dokument ein.

Haben Sie Fragen?

+0

Danke! Gibt es eine Möglichkeit zum Mehrfacheinlegen? – inest

+0

Mehrfache Einfügevorgänge sind für mehrere Positionen in einem Dokument vorgesehen. Für einen einzelnen Standort ist eine einzelne Einfügung am effizientesten. –

Verwandte Themen