Каков был бы запрос xpath для нахождения всех дочерних узлов с определенным значением атрибута, но начинающий с узла с определенным значением атрибута?
Это отчасти связано с вопросом, который я отправил ранее о парсинге rdf XML-файла - я думал, что решил его, но не совсем все же.
Например, я пытаюсь проанализировать и захватить весь из rdf:about
значения атрибута. У меня есть это хорошо работать. Я должен добавить следующее условие хотя - анализирующие потребности запуститься после определенного rdf:about
значение найдено.
Я работаю в PHP и и использую DomDocument
и использую следующий запрос xpath:
$xpath->query('//@rdf:about');
Это находит все rdf:about
прекрасные атрибуты.
Я должен расширить это, чтобы только найти те атрибуты, которые прибывают после узла чей rdf:about
атрибут равен чему-то.
Надежда это имеет смысл.
$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
Привет, Крис, извини, но это не совсем подходит для меня. Если вы запустите мой следующий код:
$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, я вообще ничего не получу.