为了账号安全,请及时绑定邮箱和手机立即绑定

从 XPath 查询中获取空值

从 XPath 查询中获取空值

慕神8447489 2021-08-19 19:08:35
我有这个 xml 文件:<?xml version="1.0" encoding="UTF-8"?><iet:aw-data xmlns:iet="http://care.aw.com/IET/2007/12" class="com.aw.care.bean.resource.MessageResource">  <iet:metadata filter=""/>  <iet:message-resource>    <iet:message>some message 1</iet:message>    <iet:customer id="1"/>    <iet:code>edi.claimfilingindicator.11</iet:code>    <iet:locale>iw_IL</iet:locale>  </iet:message-resource>  <iet:message-resource>    <iet:message>some message 2</iet:message>    <iet:customer id="1"/>    <iet:code>edi.claimfilingindicator.12</iet:code>    <iet:locale>iw_IL</iet:locale>  </iet:message-resource>  .  .  .  .</iet:aw-data>使用下面的这段代码,我正在了解数据并找到我需要的东西。try {    FileInputStream fileIS = new FileInputStream(new File("resources\\bootstrap\\content\\MessageResources_iw_IL\\MessageResource_iw_IL.ctdata.xml"));    DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();    builderFactory.setNamespaceAware(true); // never forget this!    DocumentBuilder builder = builderFactory.newDocumentBuilder();    Document xmlDocument = builder.parse(fileIS);    XPath xPath = XPathFactory.newInstance().newXPath();    String query = "//*[local-name()='message-resource']//*[local-name()='code'][contains(text(), 'account')]";    NodeList nodeList = (NodeList) xPath.compile(query).evaluate(xmlDocument, XPathConstants.NODESET);    System.out.println("size= " + nodeList.getLength());    for (int i = 0; i < nodeList.getLength(); i++) {        System.out.println(nodeList.item(i).getNodeValue());    }}catch (Exception e){    e.printStackTrace();}问题是我在 for 循环中打印时只得到空值,知道为什么会这样吗?该代码需要返回一个节点列表,这些节点具有包含给定参数的代码和消息字段(与具有两个参数的 SQL 查询相同,它们之间带有 AND 运算符)
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 344 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信