У нас есть структуры, как это:Как вернуть дополнительный узел в зависимости от текущего атрибута узла
<class>
<class-intro>
<indication>Some content</indication>
</class-intro>
<article>
<indication>Special content</indication>
</article>
<article includeclass="no">
<indication>Different content</indication>
</article>
</class>
Я пытаюсь выбрать их с XQuery/XPath на основе статьи в:
indication | node()[not(@includeclass) | @includeclass='yes']/ancestor::class/class-intro/indication
Примечание - Я использую РНР http://php.net/manual/en/class.domxpath.php
// $xpath is a DOMXPath for the above document
$articles = $xpath->query("//article");
$indications = array();
foreach ($articles as $article) {
$indications[] = $xpath->query(
"indication | node()[not(@includeclass) | @includeclass='yes']/ancestor::class/class-intro/indication",
$article
);
}
var_dump($indications);
Я ожидал получить:
array(
0 => array(
0 => "Some content",
1 => "Special content",
),
1 => array(
0 => "Different content",
),
);
Но я получаю:
array(
0 => array(
0 => "Some content",
1 => "Special content",
),
1 => array(
0 => "Some content",
1 => "Different content",
),
);
'$ статьи = $ не xpath-> запрос ("// статья [@ includeclass = 'нет']/индикация"); ' – splash58