【问题标题】:Find a node using partial searches使用部分搜索查找节点
【发布时间】:2018-03-06 17:14:48
【问题描述】:

样本:

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

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

我已经尝试过这些事情,但似乎没有一个能给我一个结果或我想要的结果:

//PERSON 将选择所有的人; contains(Person,'"+searchStr+"'); //PERSON[1] 将选择 3 个人; //PERSON[PERSON='YOYO'] 不起作用

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

编辑:

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

count(//PEOPLE[//PERSON="小丑,好人"])

【问题讨论】:

    标签: java xml xpath


    【解决方案1】:

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

    正确的做法是寻找text()

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

    选择 PERSON 的 text() 中包含 searchStr 的 PERSON,然后返回它的 text()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 2010-09-27
      相关资源
      最近更新 更多