gpt4 book ai didi

java - 如何有条件地选择 XPath 中的节点

转载 作者:行者123 更新时间:2023-11-29 03:24:28 33 4
gpt4 key购买 nike

我正在使用的 XSD 架构需要国际或国内地址:

"/mns:PhysicalAddress/mns:DomesticAddress/mns:City"

"/mns:PhysicalAddress/mns:InternationalAddress/mns:City"

它被用作 Java 方法中的参数,如 XMLUtils.BuildField(Document doc, String xpath) .

我知道我可以直接转到创建 doc 的 Java 对象并使用自动生成的 bean 来查询元素,但我更喜欢留在 XPath 的简洁领域。这可能吗?

如果是这样,我该如何编写 XPath 表达式来选择 mns:City不管是国际地址还是国内地址?

注意:这在 Java 中,而不是 Javascript、HTML 或 XSLT,所以我不认为 <xsl:if>在这里是相关的。

最佳答案

您可以找到所有具有任一父级的城市:

//mns:City[(parent::mns:DomesticAddress|parent::mns:InternationalAddress)]

如果还需要保证地址在物理地址中:

//mns:City[(parent::mns:DomesticAddress|parent::mns:InternationalAddress)[parent::mns:PhysicalAddress]]

或者,您可以执行 * 并检查名称,而不是颠倒层次结构:

/mns:PhysicalAddress/*[name()="mns:DomesticAddress" or name()="mns:InternationalAddress"]/mns:City

关于java - 如何有条件地选择 XPath 中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21786328/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com