如何在java中将String转换为DOM Document对象?

我有一个案例,比如获取XML并将XML元素转换为文档对象并获取已经创建的元素值和属性

这是我试图将字符串转换为DOM文档对象的一段代码

String xmlString = " d"; 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); 

但是这种情况仅适用于没有属性的元素,如果有的话我们可以做什么

 String xmlString = " pcdata" 

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

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

你可以试试

 DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new StringReader("")); Document doc = db.parse(is); 

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

用双引号转义\

 String xmlString = " pcdata" 

或者使用单引号代替

 String xmlString = " pcdata" 
  public static void main(String[] args) { final String xmlStr = "\n"+ "Pankaj25\n"+ "DeveloperMale"; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newDocumentBuilder(); Document doc = builder.parse( new InputSource( new StringReader( xmlStr )) ); } catch (Exception e) { e.printStackTrace(); } } 
 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有效,请注意转义字符应在前面添加“\”。

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