Element - Ausgeben von Kommentar

redbomber

Bekanntes Mitglied
Hallo zusammen, ich habe eine Frage:
Stell euch vor ich möchte folgendes Element aus einem XML Dokument auslesen:

Java:
<Root>
   <ElementName> <p>this is a text</p>
   </ElementName>
</Root>

Ich verwende JDOM!
Normalerweise habe ich in einem solchen Dokument immer Elemente, die wiederum Attribute besitzen (können).
In diesem Fall aber habe ich ein Element, welches einfach nur einen Kommentar enthält.
Diesen versuche ich nun verzweifelt auszulesen.

Mit dem Code wie folgt kann ich den Text bzw. das ganze Element auslesen:
Java:
  Element element= aRoot.getChild("ElementName");
  String string = new XMLOutputter().outputString(element);
  System.out.println(string);

Die Ausgabe ist dann:
Java:
<ElementName> <p>this is a text</p>
</ElementName>

Soweit so gut. Nun meine Frage:
Wie komme ich über das Element an den Text? die methode outputString(Element) kommt da ja auch irgendwie ran. Im Debug Modus bekomme ich allerdings nicht heraus wo genau der Text "gefunden" wird.
Zudem möchte ich ja eigentlich nur den Text und nicht auch noch das ganze Element ausgeben.
 
Mhm. Bin leider auch nicht so in JDOM bewandert, aber bei mir liefert:
Java:
		Document doc = new SAXBuilder().build(new File("text.xml"));
		Element element = doc.getRootElement().getChild("ElementName");
		System.out.println(element.getValue());
=
Code:
 this is a text

Was liefert denn so etwas wie:
Java:
		List list = element.getContent();
		for (Object object : list) {
			if (object instanceof Text)
				System.out.println(((Text) object).getValue());
			else if(object instanceof Element)
				System.out.println(((Element) object).getValue());
		}

??
 
hey, vielen Dank, habs heraus bekommen.
Ich verwende eine zu alte JDOM lib, da gibt es noch kein Content Object und somit auch kein Element.getValue(),

Da ich noch die alte lib verwende, formatiere ich nun den STring den ich über den XMLOutputter bekommen und hab somit auch in etwa das was ich wollte.

Mit der neuen JDOM version klappts wie du gesagt hast einwandfrei!
 

Zurück
Oben