使用部分搜索查找节点

时间:2018-03-06 17:14:49

标签: java xml xpath

样品:

...
<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>
...

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

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

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

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

修改

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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