php - xpath 问题中的上下文节点

2022-08-30 20:30:13

有这个代码:

$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 '&nbsp;Imgs: ' . $imgs->length . '<br />';
}

在 xmlfeed 中找到的产品节点数是 103 - 这是正确的。

然而,对该节点内定位图像的查询不是在当前节点上下文中这样做的 - 它找到116个图像节点,这是源中的图像节点总数,因为它应该只选择当前产品中的图像(在大多数情况下介于0和3之间)

任何指针都非常感谢。


答案 1

您必须使用它来使其相对于上下文节点。.//cf:image

http://www.w3.org/TR/xpath/#path-abbrev

para 选择文档根目录的所有 para 子体,从而选择与上下文节点相同的文档中的所有 para 元素

.//para 选择上下文节点的 para 元素后代

另请参见 http://bugs.php.net/bug.php?id=34413


答案 2

推荐