Ich habe ein komplettes XML-Dokument in einer Zeichenfolge und möchte ein Document
Objekt. Google deckt alle Arten von Müll auf. Was ist die einfachste Lösung? (In Java 1.5)Wie lade ich ein org.w3c.dom.Document aus XML in einer Zeichenfolge?
Lösung Dank Matt McMinn habe ich mich auf diese Implementierung festgelegt. Es hat das richtige Maß an Input-Flexibilität und Exception-Granularität für mich. (Es ist gut zu wissen, ob der Fehler von fehlerhaften XML kam - SAXException
- oder nur schlecht IO - IOException
.)
public static org.w3c.dom.Document loadXMLFrom(String xml)
throws org.xml.sax.SAXException, java.io.IOException {
return loadXMLFrom(new java.io.ByteArrayInputStream(xml.getBytes()));
}
public static org.w3c.dom.Document loadXMLFrom(java.io.InputStream is)
throws org.xml.sax.SAXException, java.io.IOException {
javax.xml.parsers.DocumentBuilderFactory factory =
javax.xml.parsers.DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
javax.xml.parsers.DocumentBuilder builder = null;
try {
builder = factory.newDocumentBuilder();
}
catch (javax.xml.parsers.ParserConfigurationException ex) {
}
org.w3c.dom.Document doc = builder.parse(is);
is.close();
return doc;
}
Es wäre schön, wenn Sie die Lösung korrigieren. Die Verwendung von String.getByptes und InputStream führt zu Problemen mit i18n. Einer meiner Freunde hat den Code von hier bekommen, was falsch ist. Glücklich, dass Findbugs das Problem entdeckt haben. Die richtige Lösung von Erickson ist die Verwendung von InputSource. –