Warum gibt es #text-Knoten in meine xml-Datei?
Mache ich eine android-Anwendung, die DOM-parsing auf eine xml-Datei. Ich habe eine xml-Datei, die wie folgt aussieht:
<?xml version="1.0" encoding="utf-8"?>
<family>
<grandparent>
<parent1>
<child1>Foo</child1>
<child2>Bar</child2>
</parent1>
<parent2>
<child1>Raz</child1>
<child2>Mataz</child2>
</parent2>
</grandparent>
</family>
Wenn ich ein dom-parser auf, wie diese:
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(input);
doc.getDocumentElement().normalize(); //added in since the edit
NodeList nodd = doc.getElementsByTagName("grandparent");
for (int x = 0; x < nodd.getLength(); x++){
Node node = nodd.item(x);
NodeList nodes = node.getChildNodes();
for(int y = 0; y < nodes.getLength(); y++){
Node n = nodes.item(y);
System.out.println(n.getNodeName());
}
}
}
Meine Anwendung druckt die folgenden
07-20 18:24:28.395: INFO/System.aus(491): #text
07-20 18:24:28.395: INFO/System.aus(491): parent1
07-20 18:24:28.395: INFO/System.aus(491): #text
07-20 18:24:28.395: INFO/System.aus(491): parent2
07-20 18:24:28.395: INFO/System.aus(491): #text
Meine Frage ist, was sind die # - text-Felder und noch wichtiger, wie kann ich Sie loswerden?
Edit: So, jetzt, dass ich weiß, was Sie sind, habe ich versucht zu normalisieren. Ich habe aktualisiert, der code, um die änderungen widerzuspiegeln, aber dasselbe Ergebnis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist whitespace (Zeilenumbrüche, Leerzeichen, tabs) 🙂
getNextSibling()
aber kann ich mich darauf verlassen, immer#text
als das erste Kind?normalize
und entfernt es vollständig zu leeren text-Knoten, nicht aber solche, die ausschließlich aus Leerzeichen. Also ja, ignorieren ist der Weg zu gehen.Dies ist, was Sie bekommen :
1) Eine Liste von Knoten mit allen Knoten wird der grand-Eltern
2) Alle Kind-Knoten des grand Elternteil x
welche sind die sub-nodes der
3) Das Kind y
Könnte es sein text zwischen der-und dies ist die #text, den Sie haben, wenn Sie hatte :
Würden Sie erhalten :
yourTextHere1
parent1
yourTextHere2
parent2
yourTextHere3
Ich hoffe es hat dir geholfen !
Julien,
Tun Sie dies, wenn das Parsen des Dokuments,
Dies würde die Art von entlüften Sie die xml-Datei, und entfernen Sie alle unerwünschten #text Kinder.