XPath - Выберите все дочерние узлы с определенным атрибутом

Каков был бы запрос xpath для нахождения всех дочерних узлов с определенным значением атрибута, но начинающий с узла с определенным значением атрибута?

Это отчасти связано с вопросом, который я отправил ранее о парсинге rdf XML-файла - я думал, что решил его, но не совсем все же.

Например, я пытаюсь проанализировать и захватить весь из rdf:about значения атрибута. У меня есть это хорошо работать. Я должен добавить следующее условие хотя - анализирующие потребности запуститься после определенного rdf:about значение найдено.

Я работаю в PHP и и использую DomDocument и использую следующий запрос xpath:

$xpath->query('//@rdf:about');

Это находит все rdf:about прекрасные атрибуты.

Я должен расширить это, чтобы только найти те атрибуты, которые прибывают после узла чей rdf:about атрибут равен чему-то.

Надежда это имеет смысл.

5
задан Ben 4 July 2013 в 01:08
поделиться

2 ответа

$xpath->query("//*[@rdf:about='http://rdfs.org/sioc/ns#']/following-sibling::*/@rdf:about");

С помощью вашего примера скрипта выводим URL, начинающиеся/заканчивающиеся на:

http://rdfs.org/sioc/ns#Community
http://rdfs.org/sioc/ns#Container
...
http://rdfs.org/sioc/ns#reference
http://rdfs.org/sioc/ns#subject
2
ответ дан 15 December 2019 в 06:22
поделиться

Привет, Крис, извини, но это не совсем подходит для меня. Если вы запустите мой следующий код:

    $dom = new DomDocument;
$dom->load('http://rdfs.org/sioc/ns#');
$xpath = new DOMXPath($dom);

$elements = array();
foreach($xpath->query('//@rdf:about') as $element) {

    array_push($elements, $element->value);
}

foreach($elements as $element) {

    echo("<br />" . $element);
}

Вы должны получить список элементов в онтологии sioc. Проблема в том, что первые 9 на самом деле не являются частью онтологии, поэтому я хочу проигнорировать их и начать с 10-го узла, который имеет ' http://rdfs.org/sioc/ns# ' как его значение для атрибута rdf: about.

Включив ваш запрос xpath, я вообще ничего не получу.

1
ответ дан 15 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: