11

如何将具有 XML 格式内容的字符串转换为 JDom 文档。

我正在尝试以下代码:

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

SAXBuilder sb= new SAXBuilder();

doc = sb.build(new StringReader(docString));

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

4

2 回答 2

18

这就是您通常将 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();
}

这取自JDOM IBM 参考

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

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

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

于 2013-03-05T08:59:16.243 回答
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.");

底线是您应该使用:

Document parseddoc = new SaxBuilder().build(new StringReader(myxmlstring));

滚滚

于 2013-03-05T11:37:18.537 回答