繁体   English   中英

Java xPath 表达式 - 更改未找到的节点的值

[英]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只能有valueempty元素,那么您可以尝试将 XPath 从/value修改为/* 这样,在找不到value元素的情况下,XPath 仍将返回一些内容

expression = "/Personnes/field[@name='Name']/* | /Personnes/field[@name='CountryCode']/*";

暂无
暂无

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

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