1. 不管是读取文件,还是字符串流,
Document doc = DocumentBuilder .parse(new ByteArrayInputStream(xmlContent.getBytes("UTF-8")));
Document doc = DocumentBuilder .parse(new FileReader("\\test.xml"));
返回的 doc [#document: null]
2. org.xml.sax.SAXParseException: Content is not allowed in prolog.
3. 把xml的name node 删除后,运行代码就没问题;
java:
javax.xml.parsers.DocumentBuilderFactory docfactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
docfactory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder = docfactory.newDocumentBuilder();
Document doc = builder.parse(new ByteArrayInputStream(xmlContent.getBytes("UTF-8")));
XPathExpression expr = XPathFactory.newInstance().newXPath().compile(xpath);
NodeList nodeList = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
if (nodeList.getLength() == 0)
{
return null;
}
return nodeList;
xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns3:room xmlns="http://www.w3.org/2005/Atom"
xmlns:ns2="urn:com:api:rest:part"
xmlns:ns3="urn:com:api:rest:room">
<ns3:owner-name>Admin</ns3:owner-name>
<ns3:owner-domain>local</ns3:owner-domain>
</ns3:room>