getChildNodes geben unerwartetes Ergebnis
Meine XML sieht wie folgt aus-
<collected_objects>
<object flag="complete" id="objId" version="1">
<variable_value variable_id="varId">ValueGoesHere</variable_value>
<reference item_ref="2"/>
</object>
<object comment="objComment" flag="complete" id="objId" version="1">
<reference item_ref="1"/>
</object>
</collected_objects>
Ich bin Verarbeitung ist es mit folgenden code-
Document dom = parser.getDocument();
NodeList collected_objects = dom.getElementsByTagName("object");
System.out.println("Number of collected objects are " + collected_objects.getLength());
for (int i = 0; i < collected_objects.getLength(); i++) {
Node aNode = collected_objects.item(i);
//get children of "objects"
NodeList refNodes = aNode.getChildNodes();
System.out.println("# of chidren are " + refNodes.getLength());
//print attributes of "objects"
NamedNodeMap attributes = aNode.getAttributes();
for (int a = 0; a < attributes.getLength(); a++) {
Node theAttribute = attributes.item(a);
System.out.println(theAttribute.getNodeName() + "=" + theAttribute.getNodeValue());
}
}
gibt es als-
Number of collected objects are 2
# of chidren are 5
flag=complete
id=objId
version=1
# of chidren are 3
comment=objComment
flag=complete
id=objId
version=1
Meine Frage ist, warum "# chidren" sind 5 und 3 jeweils? Darf ich nicht erwartet, 2 und 1 jeweils ?
denn erstes Ziel "variable_value
" und "reference
" und das zweite Objekt nur "reference
"
Im wesentlichen, meine Absicht ist es, Prozess Kinder "Objekte".
InformationsquelleAutor user837208 | 2011-12-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist, weil Sie haben 2
TEXT_NODE
(#text
) zwischen den einzelnen untergeordneten Knoten.Die folgenden enthalten den text-Knoten und Ihre entsprechenden Werte.
Dies kann überprüft werden, indem Sie Ihre code:
Die Ausgabe:
Wo, 3 =
TEXT_NODE
und 1 =ELEMENT_NODE
.InformationsquelleAutor Buhake Sindi
Stellen Sie sicher, dass Sie nicht Leerzeichen zwischen <object> Knoten Kinder. Leerzeichen werden als childnodes und kehrte als solche.
Testen, wenn
sollte genug sein.
InformationsquelleAutor soulcheck
Sind Sie nur zählen ELEMENT-Knoten-Typen. Sie können den code ändern zu gehören, die unten zu überprüfen, wenn Sie daran interessiert sind nur untergeordnete Elemente
InformationsquelleAutor Aravind R. Yarram