# XML Sonderzeichen &amp; problem



## Michael0501 (20. Januar 2010)

Hallo!

Normalerweise werden ja XML Sonderzeichen einfach beim Einlesen durch eine JAVA XML API ersetzt.

Jetzt stehen aber in diesem XML File z.B.: "&amp;#250;". Und hier liegt mein Problem, denn jetzt ersetzt mir die XML API nicht das SOnderzeichen #250 weil es das & scheinbar nicht erkennt. 

Anderer Beispielfall: <entry>Don&amp;#39;t</entry> wird nicht richtig dargestellt. 

Wenn die Zeichen korrekterweise z.B.: so stehen: ' , wird alles korrekt umgewandelt.

Hat jemand eine Idee wie ich das mit dem & regeln kann


----------



## Thomas Darimont (25. Januar 2010)

Hallo,

ich glaube die Quelle deiner XML Datei hat beim generieren einen Fehler gemacht:
So schauts aus: <entry>Don&amp;#39;t</entry>
So solls ausschauen: <entry>Don't</entry>



```
package de.tutorials;

import java.io.StringReader;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class XMLEntityResolvingExample {
  public static void main(String[] args) throws Exception {
    SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
    DefaultHandler handler = new DefaultHandler() {
      public void characters(char[] ch, int start, int length) throws SAXException {
        System.out.print(new String(ch, start, length));
      }
    };

    parser.parse(new InputSource(new StringReader("<entry>Don&amp;#39;t</entry>")), handler);
    parser.parse(new InputSource(new StringReader("<entry>Don&amp;#39;t</entry>".replaceAll("&amp;#", "&#"))), handler);

  }
}
```

Gruß Tom


----------



## Michael0501 (25. Januar 2010)

> ich glaube die Quelle deiner XML Datei hat beim generieren einen Fehler gemacht:
> So schauts aus: <entry>Don&amp;#39;t</entry>
> So solls ausschauen: <entry>Don't</entry>



Ja das war auch das Problem! 
Ich bekomme ja das XML - Feed von einem Server, diesen speichere ich einfach vorher in einem String und replace alle &amp;# mit &#, eh so wie du es gemacht hast! Dann funktioniert das sehr gut!
Danke!!


----------

