java prase xml error


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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值