Подтвердить что ты не робот

Php - context node в 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 - это правильно.

запрос к локальным изображениям внутри этого node, однако, НЕ делает это в текущем контексте node - он находит 116 узлов изображения, которое является общим количеством узлов изображения в канале, где, поскольку оно должно только выбирать изображения в текущем продукте (в большинстве случаев от 0 до 3)

Любые указатели, по достоинству оцененные.

4b9b3361

Ответ 1

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

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

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

и

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

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