Tôi có một tài liệu XML hoàn chỉnh trong một chuỗi và muốn có một đối tượng Document
. Google biến tất cả các loại rác. Giải pháp đơn giản nhất là gì? (Trong Java 1.5)Làm cách nào để tải một org.w3c.dom.Document từ XML trong một chuỗi?
Giải pháp Nhờ Matt McMinn, tôi đã giải quyết việc triển khai này. Nó có mức độ linh hoạt đầu vào và độ chi tiết ngoại lệ phù hợp với tôi. (Đó là tốt để biết nếu lỗi đến từ bị thay đổi XML - SAXException
- hoặc chỉ xấu 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;
}
Nó sẽ được tốt đẹp nếu bạn có thể sửa các giải pháp. Sử dụng String.getByptes và InputStream áp đặt các vấn đề i18n. Một người bạn của tôi đã nhận được mã từ đây vì điều đó là sai. May mắn rằng findbugs phát hiện ra vấn đề. Giải pháp chính xác được cung cấp bởi erickson là sử dụng InputSource. –