Я пытаюсь выяснить строку запроса XPath для выполнения следующей операции.
С учетом XML-документа, подобного следующему:
<root>
<data>foo1</data>
<irrelevant-node>
<data>foo1</data>
</irrelevant-node>
<irrelevant-node />
<data>foo2</data>
<irrelevant-node />
<region>
<data>bar1</data>
<data>bar2</data>
<irrelevant-node />
<region>
<data>hello1</data>
<irrelevant-node />
<data>hello2</data>
<region>
<irrelevant-node />
<data>world1</data>
</region>
</region>
<irrelevant-node />
<data>bar3</data>
<irrelevant-node>
<data>foo1</data>
</irrelevant-node>
<irrelevant-node />
</region>
<irrelevant-node />
</root>
Я хочу получить все <data>
узлов, не содержащихся в <region>
.
Затем я хочу захватить все самые верхние <region>
узлы и повторить предыдущий процесс для них, работая относительно.
По существуЯ собираюсь выполнить ряд процессов (PHP) на узлах <data>
на основе их содержимого, а затем заменить их.Тем не менее, <region>
узлы действуют как своего рода разделитель области, и как только я закончу обработку всех <data>
узлов в данной области, я перейду на уровень региона.<data>
узлы могут быть вложены в другие нерелевантные узлы.
Не уверен, что XPath - лучший инструмент для этого, и у меня много проблем, пытаясь разобраться в этом.Как уже отмечалось, я использую PHP-реализацию классов DOM.