首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中将字符串转换为DOM文档对象?

如何在java中将字符串转换为DOM文档对象?
EN

Stack Overflow用户
提问于 2011-12-13 13:53:08
回答 4查看 114.8K关注 0票数 25

我遇到过这样的情况:获取XML并将XML元素转换为文档对象,然后获取已经创建的元素值和属性

下面是我尝试将字符串转换为DOM文档对象的代码片段

代码语言:javascript
复制
String xmlString = " <r><e>d</e></r>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
org.w3c.dom.Document document = builder.parse(new InputSource(new StringReader(xmlString)));    
TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result =  new StreamResult(new StringWriter());
transformer.transform(source, result);
String str1 = result.getWriter().toString();
System.out.println(str1);

但是这种情况只对没有属性的元素有效,如果

代码语言:javascript
复制
String xmlString = "<element attribname="value" attribname1="value1"> pcdata</element>"

我们使用双引号表示属性值“value”。编译器显示错误

建议我如果有任何xml编码器和解码器来处理这种情况??

EN

回答 4

Stack Overflow用户

发布于 2011-12-13 14:01:11

你可以试试

代码语言:javascript
复制
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader("<root><node1></node1></root>"));

Document doc = db.parse(is);

请参阅此http://www.java2s.com/Code/Java/XML/ParseanXMLstringUsingDOMandaStringReader.htm

票数 58
EN

Stack Overflow用户

发布于 2011-12-13 16:33:29

使用\转义双引号

代码语言:javascript
复制
String xmlString = "<element attribname=\"value\" attribname1=\"value1\"> pcdata</element>"

或者使用单引号。

代码语言:javascript
复制
String xmlString = "<element attribname='value' attribname1='value1'> pcdata</element>"
票数 6
EN

Stack Overflow用户

发布于 2017-06-30 19:51:08

代码语言:javascript
复制
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = db.parse(new ByteArrayInputStream(xmlString.getBytes("UTF-8"))); //remove the parameter UTF-8 if you don't want to specify the Encoding type.

尽管XML结构很复杂,但这对我来说效果很好。

请确保您的xmlString对XML有效,注意转义字符应该添加在前面的"\“。

主要问题可能不是来自属性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8484921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档