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

Query Xpath match first string instead of contain text()

我有一个这样的 xml 文件:

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

我使用 xpath 查询 select 包含 "B1" 的节点值 我的代码:

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

它返回了所有 4 个值:

A0B100 
A0B101 
B1A100 
B1A101 

但我只希望 contain text() 匹配我预期结果为

的第一个字符串
B1A100 
B1A101 

我该怎么做?

使用这个 xpath

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

在您的示例 xml

中添加了 normalize-space() 到 trim 个空格