Traversieren einer DOM-Struktur zu erhalten (name,Wert) - Paare der Attribute und untergeordneten Knoten
Ich will traverse über eine XML-Datei in DOM für den Zweck der abrufen von als (name,Wert) - Paare:
- Attributnamen und-Werten;
- Alle Blattknoten Namen und Ihren text-Inhalt;
Also die folgende XML-Datei als Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<title text="title1">
<comment id="comment1">
<data> abcd </data>
<data> efgh </data>
</comment>
<comment id="comment2">
<data> ijkl </data>
<data> mnop </data>
<data> qrst </data>
</comment>
</title>
Was ich will, als name-Wert-Paare sind:
text=title1
id=comment1
data=abcd
data=efgh
id=commment2
data=ijkl
data=mnop
data=qrst
Ich bin froh! Möchten Sie vielleicht die Verwendung der Java-DOM-API. java.sun.com/developer/codesamples/xml.html#dom
Warum nicht versuchen XMLBean, und ich sah Sie gebeten, über XPath-in den letzten Fragen, die Sie gefragt? Name-Wert-paar ohne Kontext nicht Ausdrücken können, Ihre Daten im xml-Format.
Das stimmt, aber ich will nicht nur zu erhalten (name,Wert) - Paaren, sondern eher eine Traversierung in dieser Weise, und jedes mal erlebe ich diese Paare, ich werde tun, einige weitere Verarbeitung...
Sie möchten, dass einige Abfragen in XML-Attribute? Sie können versuchen, XQuery/XPath
Warum nicht versuchen XMLBean, und ich sah Sie gebeten, über XPath-in den letzten Fragen, die Sie gefragt? Name-Wert-paar ohne Kontext nicht Ausdrücken können, Ihre Daten im xml-Format.
Das stimmt, aber ich will nicht nur zu erhalten (name,Wert) - Paaren, sondern eher eine Traversierung in dieser Weise, und jedes mal erlebe ich diese Paare, ich werde tun, einige weitere Verarbeitung...
Sie möchten, dass einige Abfragen in XML-Attribute? Sie können versuchen, XQuery/XPath
InformationsquelleAutor Larry | 2011-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine einfachere Lösung ist die Verwendung von XPath zu extrahieren alle name-Wert-Paaren, wie im folgenden Beispiel. Man könnte auch überspringen, der DOM Bau-und rufen Sie bewerten direkt auf die
InputSource
. Der XPath-Ausdruckentspricht der Vereinigungsmenge aller Attribute und alle Knoten haben keine Kind-Knoten.
InformationsquelleAutor Jörn Horstmann
Wie wäre es mit etwas wie:
Okay, Sie waren nicht glücklich mit, dass, wie über dieses:
Sie können das nicht tun, einige Ihrer Daten gespeichert ist, in den Attributen, einige in der text-Inhalt. Sie entweder standise Ihre xml immer speichern, was Sie wollen, an der gleichen Stelle, oder Sie tun, was ich gezeigt habe.
Kannst du nicht einen Algorithmus, der für jeden Knoten, extrahiert es alle Attribut-Namen-Wert-Paaren, und dann eine Rekursion für jeden untergeordneten Knoten, bis wir einen Knoten führen, in denen wir extrahieren die node-Namen und text-Inhalten...
Ich habe eine zweite demo basiert auf Larrys Vorschlag. Allerdings, wenn Sie mehr als ein Attribut, das Sie gehen, um mehr als ein output-paar.
InformationsquelleAutor nuzz