繁体   English   中英

如何使用Xpath Java更新空Node值?

[英]How to update empty Node value using Xpath java?

我正在尝试使用xpath更新空节点值。当Node设置了一些值时,它会更新。但是如果node值是空,则它不会更新。

下面是代码片段:

Document document = dBuilder.parse(new File(filename));
        document.getDocumentElement().normalize();
        XPath xPath =  XPathFactory.newInstance().newXPath();
        String expression = "/Document/FIToFICstmrCdtTrf/GrpHdr/TtlIntrBkSttlmAmt";
         NodeList nodes = (NodeList) xPath.evaluate(expression, document,
                    XPathConstants.NODESET);

nodes.item(0).setNodeValue("ABC");

这是正确的方法:

node.appendChild(document.createTextNode("ABC"));

仅获取节点而不是节点列表(如果这是唯一的节点)会更有效:

Node node = (Node) xPath.evaluate(expression, document, XPathConstants.NODE);

您可以通过以下方式检查现有值:1,如果使用当前的xpath,则必须检查是否存在子节点:

node.getFirstChild() != null // in this case, the node.getFirstChild().getNodeValue() gives back the stored text.

2,或者,您可以通过以下方式对其进行测试:

 String expression = "/Document/FIToFICstmrCdtTrf/GrpHdr/TtlIntrBkSttlmAmt/text()";
 Node node = (Node) xPath.evaluate(expression, document,
            XPathConstants.NODE);
 node != null // in this case, the node.getNodeValue() gives back the stored text.

暂无
暂无

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

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