有这段代码:
$products = $feed->_xpath->query( "//cf:vehicle" );
foreach( $products as $product )
{
echo $product->nodeName . ': ' . $product->getAttribute('code') . '<br />';
$imgs = $feed->_xpath->query( "//cf:image" , $product );
echo ' Imgs: ' . $imgs->length . '<br />';
}
在xmlfeed中找到的产品节点数是103 - 这是正确的。
在该节点内定位图像的查询然而在当前节点上下文中没有这样做 - 它找到116个图像节点,这是节点中图像节点的总数,因为它应该只选择当前产品中的图像(大多数情况下在0到3之间)
任何指示都非常感激。
答案 0 :(得分:42)
您必须使用.//cf:image
使其相对于上下文节点。
来自http://www.w3.org/TR/xpath/#path-abbrev:
// para选择文档根目录的所有para后代,从而选择与上下文节点相同的文档中的所有para元素
和
.// para选择上下文节点的para元素后代