Мой общий вопрос о методах синтаксического анализа XML.
Допустим, у нас есть документ XML, и мы используем XPath для получения некоторого узла из этого документа:
XMLNode node1=XMLDoc.SelectSingleNode("/SomeNode/SomeOtherNode");
Теперь n содержит данные SomeOtherNode. Интуитивно я ожидаю следующую строку кода:
XMLNode node2=XMLDoc.SelectSingleNode("/Child");
для заполнения узла2 теми потомками узла1, которые называются «дочерними». Но, к сожалению, это не работает таким образом. Поиск XPath начинается с корня документа, а не с объекта XMLNode, для которого он был вызван. Есть ли способ заставить его работать «интуитивно»? Это было бы удобно для рекурсивного или объектно-ориентированного подхода к синтаксическому анализу.
Я пытался использовать объект XMLPathNavigator, но он работает так же. И кажется, что я мог бы установить внутренний текст XMLDocumentFragment во внутренний текст данного узла, но это похоже на неэффективное дублирование данных.
Есть идеи?