繁体   English   中英

如何使用XPATH从XML获取值

[英]How to fetch a value from XML using XPATH

这是我的xml,我想获取ID标签“ 4654”的值

<Entity>
       <acc>
            <id>4654</id>
            <name>abc</name>
       </acc>
       <acc>
            <id>5465</id>
            <name>xyz</name>
       </acc>

我正在使用此代码来检索ID值

       DocumentBuilderFactory factory =    DocumentBuilderFactory.newInstance();
       DocumentBuilder builder = factory.newDocumentBuilder();
       Document document = builder.parse(new InputSource(new StringReader(xml))); 
       XPath xPath = XPathFactory.newInstance().newXPath();
       NodeList  node = (NodeList) xPath.evaluate("/Entity/acc/id/text()", document, XPathConstants.NODE);
       System.out.println("node length:"+node.getLength());
       System.out.println("node value:"+ node.item(0).getNodeValue());
       return node.item(0).getNodeValue();

输出返回null

任何帮助,将不胜感激

您需要使用XPathConstants.NODESET而不是XPathConstants.NODE

或者您可以将其保留为XPathConstants.NODE并更改计算值以返回Node

Node node = (Node) xPath.evaluate("/Entity/acc/id/text()", document, XPathConstants.NODE);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM