我有以下代码:
$xml = simplexml_load_file($url);
$query = '/root/parent[Model="Corolla"]';
//RUN QUERY ON XML
$xQuery = $xml->xpath($query);
这是XML文件:
<root>
<parent>
<Model>Corolla A/C</Model>
</parent>
</root>
如果我正在搜索确切的字符串“Corolla”,这段代码很有用。我遇到的问题是某些值类似于“卡罗拉A / C良好状态”
有没有办法可以在XML文件中查询包含单词Corolla而不是确切字符串Corolla的任何Model元素?
编辑:我添加了一个XML帮助澄清的例子。
答案 0 :(得分:3)
在这种特殊情况下,我建议使用starts-with
函数而不是contains
(假设所有模型都以“Corolla”开头):
修改强>
根据您的修改,您必须将查询更改为:
/root/parent/Model[starts-with(., 'Corolla')]
您还可以查看Zvon XSLT Tutorial。这是一个非常好的阅读。
答案 1 :(得分:1)
/root/parent[contains(@Model, 'Corolla')]
请注意模型上的@
...表示您正在使用parent
标记的属性,而不是名称恰好为{{1 }}