0

我正在使用 java 为我的项目处理 Xpath。我有和xml类似的'''

<Tag1>
   <Tag2>
       <Name>ABC\Test</Name>
       <value>10</value>
   </Tag2>
   <Tag2>
       <Name>ABC\Test\test1</Name>
       <value>112</value>
   </Tag2>  
<Tag1>

''' 我的要求是编写一个适用于所有类似 xml 的 Xpath,以获取名称为 Test 的“值”。在上面的例子中,ABC\test 中的 ABC 可以是任何东西(即在一组 xml 中它将是其他 xyz 中的 abc),因此不能使用严格比较,例如:

//Tag2[Name[text()="text"]/value/text()

这将失败,因为我们不存在完全匹配。我还尝试了 contains 函数,例如:

//Tag2[contains(Name,"test")]/value/text()

这种情况有效,但它返回两个值节点。

是否有任何其他功能可以实现这一点。任何帮助将不胜感激。

4

1 回答 1

1

(1) 输入的 XML 格式不正确。所以我修好了。

(2) XML 区分大小写,因此查找“test”字符串不会找到“Test”。

XML

<Tag1>
    <Tag2>
        <Name>ABC\Test</Name>
        <value>10</value>
    </Tag2>
    <Tag2>
        <Name>ABC\Test\test1</Name>
        <value>112</value>
    </Tag2>
</Tag1>

XPath

/Tag1/Tag2[contains(Name,"test")]/value/text()
于 2020-01-29T14:26:48.813 回答