XML 文字列から org.w3c.dom.Document を作成しようとしています。私はこのHow to convert string to xml file in Javaを基礎として使用しています。例外は発生しません。問題は、ドキュメントが常に null であることです。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;
}
私はこれらのことを試しました: BOM が変換の失敗を引き起こしていると考えて BOMInputStream を作成しました。これは私の問題だと思いましたが、BOMInputStream を InputSource に渡しても違いはありません。単純な XML のリテラル String を渡してみましたが、null しかありません。toString メソッドが返す[#document:null]
Java 6 を使用する JSF 実装である Xpages を使用しています。Document クラスのフルネームは、同じ名前の Xpage 関連クラスとの混同を避けるために使用されます。