SAX - characters()

Status
Nicht offen für weitere Antworten.

Fraiser

Mitglied
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
 
R

Roar

Gast
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

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

Code:
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

Mitglied
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.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Problem mit SAX-Parser characters() XML & JSON 7

Ähnliche Java Themen


Oben