【发布时间】:2016-06-20 19:03:33
【问题描述】:
我的 record.xml 看起来像:
<record>
<name>john</name>
<gender>male</gender>
<subject>mathematics, english, science</subject>
</record>
<record>
<name>jamie</name>
<gender>female</gender>
<subject>mathematics, science</subject>
</record>
<record>
<name>jamie</name>
<gender>female</gender>
<subject>social-science, english</subject>
</record>
我想编写一个 xpath 查询,它将返回包含一个或多个给定主题的记录节点。
例如:
如果想获取学生的科目数学和科学
然后应该返回第二条记录,即
<record>
<name>jamie</name>
<gender>female</gender>
<subject>mathematics, science</subject>
</record>
这是我到现在为止所做的:
<?php
$xmldoc = new DOMDocument();
$xmldoc->load('record.xml');
$xpathvar = new Domxpath($xmldoc);
$res = $xpathvar->query('//record/subject[. = "science"]');
foreach($res as $data){
echo $data->textContent.'<br>';
}
?>
我想达到这样的结果:
<?php
$xmldoc = new DOMDocument();
$xmldoc->load('record.xml');
$xpathvar = new Domxpath($xmldoc);
$res = $xpathvar->query('//record/subject[. = "science" and mathematics]');
foreach($res as $data){
echo $data->textContent.'<br>';
}
?>
【问题讨论】:
-
您遇到了什么问题?你用的是什么 PHP 库?
-
@chris85 我更新了问题