Mam kompletny dokument XML w postaci ciągu i chciałbym mieć Document
obiekt. Google wyrzuca różnego rodzaju śmieci. Jakie jest najprostsze rozwiązanie? (W Javie 1.5)
Rozwiązanie Dzięki Mattowi McMinnowi zdecydowałem się na tę implementację. Ma dla mnie odpowiedni poziom elastyczności wprowadzania danych i szczegółowości wyjątków. (Dobrze jest wiedzieć, czy błąd pochodzi ze zniekształconego kodu XML - SAXException
- czy po prostu złego 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;
}