Java xPath表达式-更改未找到的节点的值
今天我试图知道一个节点中的值,但有时我有一个闭合节点。。。例如,XML:Java xPath表达式-更改未找到的节点的值,java,xml,xpath,expression,Java,Xml,Xpath,Expression,今天我试图知道一个节点中的值,但有时我有一个闭合节点。。。例如,XML: <Info> <Personne> <field name="Name" type="String"> <value type="String"> TOTO </value> </field>> <field name="CountryCode" type
<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>
托托
>
Fr
托托
>
要读取XML文件(在java代码中),我使用:
expression=“/Personnes/field[@name='name']/value |/Personnes/field[@name='CountryCode']/value”;
NodeList节点=(NodeList)xPath.compile(expression).evaluate(document,xpathcontents.NODESET);
对于(int i=0;i
但是我希望xPath在读取
时通过示例显示“空”而不是任何内容
非常感谢!假设
字段
只能有值
或空
子元素,那么您可以尝试将XPath从/value
修改为/*
。这样,在没有找到值
元素的情况下,XPath仍然会返回一些内容
expression = "/Personnes/field[@name='Name']/* | /Personnes/field[@name='CountryCode']/*";
@Jason您需要检查
getFirstChild()
是否返回某些内容。如果不是,只需打印“EMPTY”
,否则您可以继续打印节点值。。。
expression = "/Personnes/field[@name='Name']/* | /Personnes/field[@name='CountryCode']/*";