如何在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"+ "Pankaj 25 \n"+ "Developer Male "; 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有效,请注意转义字符应在前面添加“\”。
主要问题可能不是来自属性。