查询Xpath匹配第一个字符串而不是包含text()

时间:2019-07-11 08:11:02

标签: xpath

我有一个这样的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 

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

B1A100 
B1A101 

我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用此xpath

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

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