如何将包含XML格式内容的String转换为JDom文档

Use*_*_86 11 java sax eclipse-plugin jdom jdom-2

如何将具有XML格式内容的String转换为JDom文档.

我正在尝试下面的代码:

String docString = txtEditor.getDocumentProvider().getDocument(
txtEditor.getEditorInput()).get();

SAXBuilder sb= new SAXBuilder();

doc = sb.build(new StringReader(docString));
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决上述问题.提前致谢!!

Aur*_*urA 15

这是您通常将xml解析为Document的方式

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();
}
Run Code Online (Sandbox Code Playgroud)

这取自JDOM IBM Reference

如果你有字符串,你可以将它转换为InputStream然后传递它

String exampleXML = "<your-xml-string>";
InputStream stream = new ByteArrayInputStream(exampleXML.getBytes("UTF-8"));
Document anotherDocument = builder.build(stream);
Run Code Online (Sandbox Code Playgroud)

对于各种参数,builder.build()支持您可以浏览api文档


rol*_*lfl 9

这是一个常见问题解答,比实际常见问题解答更容易获得答案:如何从字符串构建文档?

所以,我创建了问题#111

对于它的价值,我之前已经改进了针对这种情况的错误消息(参见上一期#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.");
Run Code Online (Sandbox Code Playgroud)

底线是你应该使用:

Document parseddoc = new SaxBuilder().build(new StringReader(myxmlstring));
Run Code Online (Sandbox Code Playgroud)

rolfl