查询 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 个空格
我有一个这样的 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 个空格