JAVA-element.getElementsByTagName Beschränken auf Top-Niveau
Ich habe eine XML-Datei wie folgt:
<rootNode>
<link>http://rootlink/</link>
<image>
<link>http://imagelink/</link>
<title>This is the title</title>
</image>
</rootNode>
XML-Java-code mit Hilfe von DOM ist wie folgt:
NodeList rootNodeList = element.getElementsByTagName("link");
Diese geben mir alle die "link" - Elemente, einschließlich der top-level-und das innerhalb der "Bild" - Knoten.
Gibt es eine Möglichkeit, nur den "link" - tags für Stammknotens in einer Ebene und nicht zwei, wie es der Fall für den Bild-link? Das ist, ich will nur die http://rootlink/ "link".
InformationsquelleAutor der Frage user152090 | 2009-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie XPath:
InformationsquelleAutor der Antwort McDowell
Konnte ich nicht finden irgendwelchen Methoden zu tun, die entweder so schrieb ich diese helper-Funktion,
InformationsquelleAutor der Antwort ZZ Coder
Wenn Sie verwenden können, JDOM statt, Sie können dies tun:
Mit standard-Dom-die nächstgelegene Sie bekommen können, ist zum Durchlaufen der Liste untergeordnete Knoten (durch Aufruf von getChildNodes() und überprüfen jedes Element(i) der NodeList, die Auswahl der Knoten mit dem entsprechenden Namen.
InformationsquelleAutor der Antwort Rich Seller
Ich weiß, das ist eine alte Frage, aber dennoch habe ich eine alternative Lösung hinzufügen.
Es ist nicht das effizienteste, aber funktioniert:
Erhalten alle Kinder über getElementsByTagName, dann prüfen Sie einfach, jeder hat die gleichen Eltern, die Sie mit gestartet.
Benutze ich dies, weil ich eine Reihe von Ergebnissen, jedes Ergebnis kann Ergebnisse verschachtelten Innenseite. Wenn ich mein Ergebnis Konstruktor muss ich hinzufügen, verschachtelten Ergebnisse, aber wie Sie selbst Aussehen wird, für Ihre eigenen Kinder, die ich nicht hinzufügen möchten Kinder auf den aktuellen Stand (Ihre Eltern werden sich addieren).
Beispiel:
Hoffe, das hilft.
InformationsquelleAutor der Antwort ThePerson
Schrieb ich diese Funktion, um den Knoten mit dem Wert von tagName, einschränken zu top-level -
InformationsquelleAutor der Antwort Danimate