Xpath查询包含

时间:2012-07-12 19:04:21

标签: php xml xpath simplexml

我有以下代码:

$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帮助澄清的例子。

2 个答案:

答案 0 :(得分:3)

在这种特殊情况下,我建议使用starts-with函数而不是contains(假设所有模型都以“Corolla”开头):

修改

根据您的修改,您必须将查询更改为:

/root/parent/Model[starts-with(., 'Corolla')]

您还可以查看Zvon XSLT Tutorial。这是一个非常好的阅读。

答案 1 :(得分:1)

/root/parent[contains(@Model, 'Corolla')]

请注意模型上的@ ...表示您正在使用parent标记的属性,而不是名称恰好为{{1 }}