# [SAX] Geschachtelte XML Datei parsen



## la-finest (15. Nov 2010)

Hallo zusammen,

habe folgendes XML (Snippet):

```
<item>
...
<subtitle hit="1">
Fakten für 
<hit>Python</hit>
-Entwickler
<hit>Python</hit>
text.text.text...
</subtitle>
...
</item>
```

Mit meinem SAXHandler:

```
@Override
	public void startElement(String uri, String localName, String qName,
			Attributes attributes) throws SAXException {
		currentElement = true;
		
		if(localName.equals("item")){
			pojo = new Pojo();
		}
	}

@Override
	public void endElement(String uri, String localName, String qName)
			throws SAXException {
		
		currentElement = false;
		
		if(localName.equalsIgnoreCase("subtitle")){
			pojo.setSubtitle(currentValue);
		}
}

@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException {	
		
		if (currentElement) {
			currentValue = new String(ch, start, length);
			currentElement = false;
		}
	}
```

Ohne das <hit>-Tag schreibt er mir alles raus. Mit dem Tag wird nur noch "Python", also der Wert innerhalb des <hit>-Tags ausgegeben. Wie komme ich an den kompletten Text ran, also "Fakten für Python-Entwickler Python text.text.text...".
Habe nur Beispiele im Netz gesehen von <tag><subtag></subtag></tag> und nicht mit Text vorm Tag.

Viele Grüße & Dank,
la-finest


----------



## Noctarius (15. Nov 2010)

Musst mal schauen, ob es beim SAX-Parser bei so genannten Mixed-Nodes (also Tags mit Subtags und Text-Node) was besonderes zu beachten gibt. Spontan wüsste ich nicht, aber normal mache ich nichts mit Mixed-Nodes.

Edit:
Hab noch etwas geschaut: Tip: SAX and document order -- deliver maximally contiguous text

Edit2:
Die Methode characters kann mehrfach aufgerufen werden, du überschreibst damit immer deinen alten Textwert.


----------



## la-finest (16. Nov 2010)

Vielen Dank.

Bin von diesem MixedNote geraffelt nicht sonderlich begeistert, aber habe keinen Einfluss auf den Return des WebServices.

Werde dann mal das ganze ausprobieren.

Gruß,
la-finest


----------



## Noctarius (16. Nov 2010)

Joar schön ist anders  Aber die Härte ist das noch lange nicht *g*


----------

