如何将包含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(); 
} 

这是从JDOM IBM Reference

如果采取你的字符串,你可以将其转换为InputStream,然后将它传递

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

对于builder.build()支持的各种参数,您可以通过api docs

+0

感谢您的快速响应。你粘贴的代码工作正常,使用特定路径下的文件创建一个新文档。但在我的情况下,我需要创建/转换具有XML格式内容的字符串到Document中。 – 2013-03-05 09:03:40

+0

@akhil_gupta我已根据您的要求更新了答案 – AurA 2013-03-05 09:10:37

+0

是的,代码可以正常工作以从现有的.xml文件创建新文档。但在这里我没有任何XML文件。我从其他地方得到这个字符串(内容为xml格式)。正如你可以看到它的代码:String docString = txtEditor.getDocumentProvider()。getDocument( txtEditor.getEditorInput())。get(); – 2013-03-05 09:10:44

这是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