2 回答
TA贡献1797条经验 获得超6个赞
正如supputuri 的回答所暗示的那样,您可以将两个 XPath 表达式组合到一个搜索中:
//record[@id="1A"]/congrant[status="Funded"]
如果你想要第一个列表用于其他目的,你可以循环它并在 PHP 中进行状态检查:
$xml_bio_record=$xml_bio->xpath('//record[@id="1A"]');
$funded_count = 0;
foreach($xml_bio_record as $xb){
foreach ($xb->congrant as $congrant) {
if ( (string)$congrant->status == 'Funded' ) {
$funded_count++;
}
}
}
或者您可以混合使用循环和 XPath,.用于使 XPath 搜索相对于特定元素:
$xml_bio_record=$xml_bio->xpath('//record[@id="1A"]');
$total_funded_count = 0;
foreach($xml_bio_record as $xb){
$xb_funded_count = count($xb->xpath('./congrant[status="Funded"]'));
$total_funded_count += $xb_funded_count;
}
TA贡献1906条经验 获得超3个赞
这是可用于获取具有Funded
状态的元素计数的纯 xpath 。
count(//record[@id="1A"]//status[.='Funded'])
截屏:
- 2 回答
- 0 关注
- 159 浏览
添加回答
举报