dom4j: getStringValue() vs. asXML()

Dom4j ist eine xml-parser für Java. Der folgende Code iteriert über die Kindelemente des root-Elementes und gibt die Inhalte der Kinder auf die Konsole aus:

Element root = document.getRootElement();
  for (Iterator<Element> i = root.elementIterator(); i.hasNext(); ){
    Element element = (Element)i.next();
    System.out.println(element.getStringValue());
  }

Wenn das Element selbst XML enthält, dann wird dieser einfach ignoriert. Gehen wir von der folgenden xml Datei aus:

<root>
   <message> ich bin der <b>Inhalt</b> </message>
   <message> ich <b>auch</b> </message>
</root>

Der Output mit “getStringValue()” würde demnach wie folgt aussehen:

ich bin der Inhalt
ich auch

das HTML-Tag “<b>” und “</b>” wurden einfach ignoriert. Wenn der Inhalt mit den HTML-Tags ausgegeben werden soll, dann muss der Inhalt wie XML behandelt werden. Das wird durch die Methode “asXML()” erreicht:

Element root = document.getRootElement();
for (Iterator<Element> i = root.elementIterator(); i.hasNext(); ){
   Element element = (Element)i.next();
   System.out.println(element.asXML());
}

Jetzt würde die Ausgabe so aussehen:

ich bin der <b>Inhalt</b>
ich <b>auch</b>