5

If I have an XML element such as:

<title>this is a title</title>

The text is very easy to get using XMLStreamReader.getElementText(). However, if I run into an element like this, I cannot figure out how to get the text:

<title>this is a <othertag>title with another</othertag> tag inside of it</title>

I wasn't even sure if that was valid XML, but it seems to pass the W3C validator I tried it on. According to the API docs, you can't use getElementText() to get the text if you are going to encounter another START_ELEMENT event inside. So... what can you use?

The111
  • 5,757
  • 4
  • 39
  • 55

2 Answers2

3

Use getText

getText() returns the current value of the parse event as a string, this returns the string value of a CHARACTERS event, returns the value of a COMMENT, the replacement value for an ENTITY_REFERENCE, the string value of a CDATA section, the string value for a SPACE event, or the String value of the internal subset of the DTD. If an ENTITY_REFERENCE has been resolved, any character data will be reported as CHARACTERS events.

Anirudha
  • 32,393
  • 7
  • 68
  • 89
  • Thanks! This should have been obvious but my brain was fried after about 16 hours of coding nonstop. – The111 Nov 04 '12 at 23:29
1

I think you need to parse the elements inside the <title> tag separately (as this is a and then the <othertag>...</...> section followed by tag inside of it

artbristol
  • 32,010
  • 5
  • 70
  • 103