DocumentBuilder.parse(InputStream) returns null

Zack

cookies vader
Hallo,

ich versuche mittels des DocumentBuilders einen String, der den Inhalt einer XML-Datei ist, ein DOM zu erzeugen. Dabei besteht das Problem das mit der Parser immer null zurück gibt.
Java:
private Document stringToDOM(String photosXml){
	try {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		InputSource is = new InputSource( new StringReader( photosXml ) );
		Document d = builder.parse( is );
		System.out.println(d);
		log("photos.xml umgewandelt in DOM");
		return d;
	}
	catch( Exception ex ) {
		ex.printStackTrace();
		return null;
	}
}

vielen Dank im vorraus, Zack
 
Ja der String ist korrekt. Ich hol mir den von einer Website. Zum testen habe ich den mal gespeichert und mit dem von der Seite verglichen, ist exakt das selbe.
 
Laut aus diesem Link
Java:
public class Utils {
  public static Document newDocumentFromString(String xmlString) {
    DocumentBuilderFactory factory = null;
    DocumentBuilder builder = null;
    Document ret = null;

    try {
      factory = DocumentBuilderFactory.newInstance();
      builder = factory.newDocumentBuilder();
    } catch (ParserConfigurationException e) {
      e.printStackTrace();
    }

    try {
      ret = builder.parse(new InputSource(new StringReader(xmlString)));
    } catch (SAXException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return ret;
  }

}

Sieht es ja ziemlich gleich aus. Hast du mal probiert einen einfachen xml String selbst zu uebergeben und diesen zu parsen?
 
Könnte es sein das in ghotosXML noch der HTTP-Header enthalten ist und so der Parser auf Grund desse schon in der ersten Zeile mit NULL returnt? Ist nur so ne Vermutung weil du ja geschrieben hast das du ihn dir über Netz holst.
 
Ich denke es liegt nicht am String, denn
Java:
String test = "<?xml version=\"1.0\"?>" +
		"<note>" +
		"<to>Tove</to>" +
		"<from>Jani</from>" +
		"<heading>Reminder</heading>" +
		"<body>Don't forget me this weekend!</body>" +
		"</note>"; 
Document d = stringToDOM(test);
liefert ebenfalls: [#document: null]
 
Ok hat sich geklärt. Komischerweise ist troz das dort null steht das Document erzeugt.Wieso das so ist versteh ich allerdings nicht.

Vielen Dank für die Debugideen.

Zack
 
Ich würde jetzt ganz stark auf eine überschriebene toString()-Methode vermuten die diesen "Fehler" produziert da ja nicht nur NULL kommt sondern #document NULL ... müsste man mal in die Source gucken.
 
Zurück