[英]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.