JDOM 如何修改XML文档中的CDATA段数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDOM 如何修改XML文档中的CDATA段数据相关的知识,希望对你有一定的参考价值。
JDOM 如何修改XML文档中的CDATA段数据 ,修改后又如何存档?请高手指点!
参考技术A 我也在找答应如何将具有 XML 格式内容的字符串转换为 JDom 文档
【中文标题】如何将具有 XML 格式内容的字符串转换为 JDom 文档【英文标题】:How to convert String having contents in XML format into JDom document 【发布时间】:2013-02-19 14:23:42 【问题描述】:。
我正在尝试使用以下代码:
String docString = txtEditor.getDocumentProvider().getDocument(
txtEditor.getEditorInput()).get();
SAXBuilder sb= new SAXBuilder();
doc = sb.build(new StringReader(docString));
谁能帮我解决上述问题。 提前致谢!!
【问题讨论】:
【参考方案1】:这是一个比实际常见问题解答更容易获得答案的常见问题解答: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));
罗尔夫
【讨论】:
实际上,我粘贴的代码似乎也可以正常工作。我的代码中的其他地方有问题。但感谢您对此进行调查。【参考方案2】:这就是您通常将 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 Reference
如果你有字符串,你可以将它转换为 InputStream 然后传递它
String exampleXML = "<your-xml-string>";
InputStream stream = new ByteArrayInputStream(exampleXML.getBytes("UTF-8"));
Document anotherDocument = builder.build(stream);
对于 builder.build() 支持的各种参数,您可以通过api docs
【讨论】:
感谢您的快速回复。您粘贴的代码可以很好地使用特定路径中可用的文件创建新文档。但就我而言,我需要创建/转换具有 XML 格式内容的字符串到 Document. 是的,代码可以很好地从现有的 .xml 文件创建新文档。但在这里我没有任何 xml 文件。我从其他地方得到这个字符串(它具有 xml 格式的内容)。如您所见,我的代码: String docString = txtEditor.getDocumentProvider().getDocument( txtEditor.getEditorInput()).get(); sry.. 解决了错字问题.. exampleXML 是 xml 格式的字符串 实际上,我粘贴的代码似乎也可以正常工作。我的代码中的其他地方有问题。但感谢您对此进行调查。而且您提供了不同的方法来做同样的事情。希望这种方法对任何人都有帮助。以上是关于JDOM 如何修改XML文档中的CDATA段数据的主要内容,如果未能解决你的问题,请参考以下文章