像这样的字符串如何解析,我想得到的是openid和username
String userInfo = "<results>" + "<returncode>返回错误码</returncode>"
+ "<errmsg>操作失败的具体原因 </errmsg>" + "<user openid=”1”>"
+ "<username>lu</username>" + "</user>" + "<user openid=”2”>"
+ "<username>m</username>" + "</user>" + "</results>";
这是我解析的代码
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
factory.setCoalescing(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new ByteArrayInputStream(userInfo
.getBytes()));
int nodeLength = doc.getElementsByTagName("user").getLength();
for (int i = 0; i < nodeLength; i++) {
Node element = doc.getElementsByTagName("user").item(i);
System.out.println(element.getChildNodes().item(0)
.getChildNodes().item(0).getAttributes().item(0)
.getNodeValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
执行结果
Document doc = builder.parse(new ByteArrayInputStream(userInfo
.getBytes()));
这句代码报错
[Fatal Error] :1:80: Open quote is expected for attribute "{1}" associated with an element type "openid".
org.xml.sax.SAXParseException: Open quote is expected for attribute "{1}" associated with an element type "openid".