如何将包含XML格式内容的字符串转换为JDom文档
问题描述:
如何将具有XML格式内容的字符串转换为JDom文档。如何将包含XML格式内容的字符串转换为JDom文档
我与下面的代码尝试:
String docString = txtEditor.getDocumentProvider().getDocument(
txtEditor.getEditorInput()).get();
SAXBuilder sb= new SAXBuilder();
doc = sb.build(new StringReader(docString));
任何一个可以帮助我解决上述问题。 在此先感谢!
答
这是你一般是如何解析的XML文档
try {
SAXBuilder builder = new SAXBuilder();
Document anotherDocument = builder.build(new File("/some/directory/sample.xml"));
} catch(JDOMException e) {
e.printStackTrace();
} catch(NullPointerException e) {
e.printStackTrace();
}
如果采取你的字符串,你可以将其转换为InputStream,然后将它传递
String exampleXML = "<your-xml-string>";
InputStream stream = new ByteArrayInputStream(exampleXML.getBytes("UTF-8"));
Document anotherDocument = builder.build(stream);
对于builder.build()支持的各种参数,您可以通过api docs
答
这是shold比实际的常见问题更容易回答的常见问题解答:How do I build a document from a String?
所以,我创建issue #111
对于它的价值,我以前改善了这种情况的错误消息(看到the previous issue #63,现在你应该有一个错误,指出:
MalformedURLException mx = new MalformedURLException(
"SAXBuilder.build(String) expects the String to be " +
"a systemID, but in this instance it appears to be " +
"actual XML data.");
底线是,你应该使用:
Document parseddoc = new SaxBuilder().build(new StringReader(myxmlstring));
rolfl
+0
其实,看来我粘贴的代码也工作正常。我的代码中有其他地方出现问题。但谢谢你看这个。 – 2013-03-05 13:23:00
感谢您的快速响应。你粘贴的代码工作正常,使用特定路径下的文件创建一个新文档。但在我的情况下,我需要创建/转换具有XML格式内容的字符串到Document中。 – 2013-03-05 09:03:40
@akhil_gupta我已根据您的要求更新了答案 – AurA 2013-03-05 09:10:37
是的,代码可以正常工作以从现有的.xml文件创建新文档。但在这里我没有任何XML文件。我从其他地方得到这个字符串(内容为xml格式)。正如你可以看到它的代码:String docString = txtEditor.getDocumentProvider()。getDocument( txtEditor.getEditorInput())。get(); – 2013-03-05 09:10:44