如何使用 Xpath java 更新空的节点值?



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

下面是代码片段:

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.

最新更新