[英]Java xPath expression - Change the value of a node not found
今天我试图知道一个节点中的一个值,但有时我有一个封闭的节点......例如 XML:
<Info>
<Personne>
<field name="Name" type="String">
<value type="String"> TOTO </value>
</field>>
<field name="CountryCode" type="String">
<value type="String"> Fr </value>
</field>
</Personne>
<Personne>
<field name="Name" type="String">
<value type="String"> TOTO </value>
</field>>
<field name="CountryCode" type="String">
<empty />
</field>
</Personne>
</Info>
要读取我的 XML 文件(在我的 java 代码中),我使用:
expression = "/Personnes/field[@name='Name']/value | /Personnes/field[@name='CountryCode']/value ";
NodeList nodes = (NodeList) xPath.compile(expression).evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < nodes.getLength(); i++) {
System.out.print(nodes.item(i).getFirstChild().getNodeValue()
}
但是我希望 xPath 读取<empty />
它会通过示例“EMPTY”而不是任何内容向我显示..
非常感谢 !
假设该field
只能有value
或empty
元素,那么您可以尝试将 XPath 从/value
修改为/*
。 这样,在找不到value
元素的情况下,XPath 仍将返回一些内容
expression = "/Personnes/field[@name='Name']/* | /Personnes/field[@name='CountryCode']/*";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.