2011-12-13 29 views
12

我有一个像获取XML和将XML元素转换为文档对象并获取已创建的元素值和属性的情况如何将字符串转换为Java中的DOM文档对象?

这是我试图将字符串转换为DOM文档对象

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); 

但这种情况下是有效的唯一元素,而属性 我们能做些什么,如果

String xmlString = "<element attribname="value" attribname1="value1"> pcdata</element>" 

我们使用双引号的ATT ribute值“值”。编译器显示错误

如果有任何xml编码器和解码器可以处理这种情况,

+0

它应该很好的属性 - 你看到了什么行为? –

回答

5

要么逃避双引号\

String xmlString = "<element attribname=\"value\" attribname1=\"value1\"> pcdata</element>" 

,或者使用单引号代替

String xmlString = "<element attribname='value' attribname1='value1'> pcdata</element>" 
2
 public static void main(String[] args) { 
    final String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"+ 
          "<Emp id=\"1\"><name>Pankaj</name><age>25</age>\n"+ 
          "<role>Developer</role><gen>Male</gen></Emp>"; 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder; 
     try 
     { 
      builder = factory.newDocumentBuilder(); 
      Document doc = builder.parse(new InputSource(new StringReader(xmlStr))); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
1
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有效,注意转义字符应该在前面添加“\”。

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

相关问题