# SAX - characters()



## Fraiser (24. Aug 2006)

Hallo zusammen.

Beim Parsen bekommt man bei der Methode characters() ja einen langen CharArray mit start und length geliefert. Mein Problem besteht darin, dem Tag aus startElement, den  dazugehörigen Wert zuzuweisen. 

z.B.
<A xy="abc">edfg</A>

<A xy="abc"></A>  ==> bekomm ich aus der startElement
edfg  ==> da weiss ich nicht, wie ich das aus characters() rausziehe und dem <A></A>  zuordne

Wäre für Hilfe sehr dankebar


----------



## Roar (24. Aug 2006)

String text = new String(characters, start, length);
dingsdibums.text = text;

:?:
characters() kann übrigens auch mehrmals für einen text (in einem tag) aufgerufen werden also achtung.


----------



## Fraiser (24. Aug 2006)

Vielleicht nicht die beste Lösung, aber ich habs nach viel zu langer Zeit nun so gelöst:


```
public void characters(char[] ch, int start, int length)throws SAXException {
		
	String s= new String(ch,start,length).trim();
			
	if(s.indexOf("\n") < 0 && s.length() > 0) {

	myNode.setTextContent(s);
    }
.....
}
```

wobei myNode ein Knoten ist, bei dem im startElement() die attribute festgelegt wurden


----------



## Fraiser (25. Aug 2006)

Hab weiterhin Probleme...

Ziel soll es sein, aus einer XML-Datei  ein verändertes document (durch DocumentBuilder) zu erstellen.
Dazu erstell ich ein element. Setze die Attribute mit setAttributes in der startElement().
Nun soll noch der Text in das Element gespeichert werden.
Dazu verwende ich:   if (s.trim().length() > 0)     MyNode.setTextContent(s.trim());

Wie füg ich nun meine Knoten dem document am besten hinzu.
Ich wollt das direkt in der characters() machen, aber das funktioniert nicht, u.a. weil die Tags mehrfach vorkommen können.


----------

