使用部分搜索查找节点

问题描述 投票:-1回答:1

样品:

...
<PEOPLE>
    <PERSON>JOHN, the fighter<PERSON/>
    <PERSON>SALLY, the visionary<PERSON/>
    <PGROUP>
        <PERSON>YOYO<PERSON/>
        <PERSON>BENJI<PERSON/>
    </PGROUP>
    <PERSON>builders<PERSON/>
    <PERSON>cleaners<PERSON/>
    <PGROUP>
        <PERSON>Clowny, good person<PERSON/>
        <PERSON>Clownee, bad person<PERSON/>
    </PGROUP>
    <PERSON>Gentleman<PERSON/>
</PEOPLE>
...

我想插入一个字符串并找到那个人(如果存在):John,建设者,小丑(应该返回第一个出现=> Clowny,好人),战斗机,......

我尝试过这些东西,但似乎没有人给我一个结果或我想要的结果:

// PERSON将选择所有人;包含(人, ' “+字符串searchstr +”'); // PERSON [1]将选择3人; // PERSON [PERSON ='YOYO']不起作用

到目前为止,这些都没有奏效。我希望返回全名。

编辑:

如果找到searchStr,则返回1(输入是精确的)。没有计数它返回PEOPLE。如果找到搜索到的人,则使用/ PERSON附加表达式始终返回第一个人。

count(// PEOPLE [// PERSON =“Clowny,good person”])

java xml xpath
1个回答
0
投票

如果将来有人需要,我会留下这个问题。

正确的方法是查找文本()

//PERSON[contains(text(),"vision")]/text()

选择PERSON的text()包含searchStr的PERSON然后返回它的文本()

© www.soinside.com 2019 - 2024. All rights reserved.