php – контекстный узел в xpath-проблеме

есть этот код:

$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 в большинстве случаев)

Любые указатели очень ценились.

Related of "php – контекстный узел в xpath-проблеме"

Вы должны использовать .//cf:image чтобы сделать его относительно контекстного узла.

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

// para выбирает всех потомков para корня документа и таким образом выбирает все элементы para в том же документе, что и контекстный узел

а также

.//para выбирает потомки пара-элемента контекстного узла

Также см. http://bugs.php.net/bug.php?id=34413