Hallo meine XML ist an einer Stelle immer verschieden.
Vom Unmarshal bekomm ich eine Liste mit DOM Elementen.
Jetzt möchte ich über einen rekursiven Aufruf alle Nodes haben, die einen Value aufweisen.
Das geht auch so weit ganz gut. Hier der Code:
Die Funktion tut auch was sie soll nur sind die Ausgaben total komisch.
Wenn ich die XML so schreibe:
ist die Ausgabe ganz toll:
Wenn ich die XML aber so angeben:
Dann ist die Ausgabe:
Die XML Datei wird per JAXB Unmarshal eingelesen.
Wehalb werden hier Zeilenumbrüche hier als Value interpretiert und wie kann ich das verhindern?
Gruß
Vom Unmarshal bekomm ich eine Liste mit DOM Elementen.
Jetzt möchte ich über einen rekursiven Aufruf alle Nodes haben, die einen Value aufweisen.
Das geht auch so weit ganz gut. Hier der Code:
Code:
private void findChildren(Node node){
NodeList nodeList = node.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node currentNode = nodeList.item(i);
if (currentNode.getNodeType() == Node.ELEMENT_NODE){
findChildren(currentNode);
}else {
if(!currentNode.getNodeValue().trim().equals("\n")){
out.add(currentNode.getNodeValue());
}
}
}
print(out);
}
Die Funktion tut auch was sie soll nur sind die Ausgaben total komisch.
Wenn ich die XML so schreibe:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<message>
<header>
<status>OK</status>
<action>Request</action>
<command>Message</command>
<messageId>0000001</messageId>
</header>
<payload>
<content><display>2</display>1</content>
</payload>
</message>
ist die Ausgabe ganz toll:
Code:
[2, 1]
Wenn ich die XML aber so angeben:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<message>
<header>
<status>OK</status>
<action>Request</action>
<command>Message</command>
<messageId>0000001</messageId>
</header>
<payload>
<content>
<display>
2
</display>
1
</content>
</payload>
</message>
Dann ist die Ausgabe:
Code:
[
2
,
1
]
Die XML Datei wird per JAXB Unmarshal eingelesen.
Wehalb werden hier Zeilenumbrüche hier als Value interpretiert und wie kann ich das verhindern?
Gruß