我正在尝试从 XML 字符串创建 org.w3c.dom.Document。我正在使用这个How to convert string to xml file in java作为基础。我没有遇到异常,问题是我的文档始终为空。XML 是系统生成的并且格式正确。我希望将其转换为 Document 对象,以便我可以添加新节点等。
public static org.w3c.dom.Document stringToXML(String xmlSource) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputStream input = IOUtils.toInputStream(xmlSource); //uses Apache commons to obtain InputStream
BOMInputStream bomIn = new BOMInputStream(input); //create BOMInputStream from InputStream
InputSource is = new InputSource(bomIn); // InputSource with BOM removed
Document document = builder.parse(new InputSource(new StringReader(xmlSource)));
Document document2 = builder.parse(is);
System.out.println("Document=" + document.getDoctype()); // always null
System.out.println("Document2=" + document2.getDoctype()); // always null
return document;
}
我已经尝试过这些事情:我创建了一个 BOMInputStream 认为 BOM 导致转换失败。我认为这是我的问题,但将 BOMInputStream 传递给 InputSource 并没有什么不同。我什至尝试过传递一个简单 XML 的文字字符串,除了 null 什么都没有。toString 方法返回[#document:null]
我正在使用 Xpages,这是一个使用 Java 6 的 JSF 实现。Document 类的全名用于避免与同名的 Xpage 相关类混淆。