【问题标题】:Query Xpath match first string instead of contain text()查询 Xpath 匹配第一个字符串而不是包含 text()
【发布时间】:2019-07-11 08:11:02
【问题描述】:

我有一个这样的 xml 文件:

<Doc> A0B100 </Doc>
<Doc> A0B101 </Doc>
<Doc> B1A100 </Doc>
<Doc> B1A101 </Doc>

我使用 xpath 查询来选择包含“B1”的节点的值 我的代码:

$txtSearch = "B1";
$titles = $xpath->query("Doc[contains(text(),\"$txtSearch\")]");

它返回了所有 4 个值:

A0B100 
A0B101 
B1A100 
B1A101 

但我只希望包含 text() 匹配我预期结果的第一个字符串

B1A100 
B1A101 

我该怎么做?

【问题讨论】:

    标签: xpath normalize-space


    【解决方案1】:

    使用这个 xpath

    Doc[starts-with(normalize-space(text()),\"$txtSearch\")]
    

    添加了normalize-space() 以修剪示例 xml 中的空格

    【讨论】:

      猜你喜欢
      • 2022-07-05
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      相关资源
      最近更新 更多