В зависимости от того, как вы хотите использовать XPath. В любом случае вам нужно подойти к самому себе и собрать XPath в пути.
Если вы хотите иметь читаемую строку для отображения - просто объединение имен узлов prent (см. Предложение BrokenGlass) работает нормально
Если вы хотите выбрать позже в XPath
- позиционный XPath (укажите положение каждого узла в его родительском элементе) - это одна опция (что-то вроде / / [3] / *). Вы должны рассматривать атрибуты как особый случай, поскольку для атрибутов не определен порядок
- XPath с предопределенными префиксами (пространство имен для префикса необходимо хранить отдельно) - / my: root / my: child [3] / o: prop1 / @ t: attr3
- XPath со встроенными пространствами имен, когда вы хотите получитаемый и переносимый XPath / * [name () = 'root' & namespace-uri () = 'http://my.namespace']/.... (см. Спецификации для функций name и namespace-uri http://www.w3.org/TR/xpath/#function-namespace-uri)
Обратите внимание, что специальные узлы, такие как комментарии и инструкции по обработке, возможно, придется учитывать, если вы хотите действительно общую версию XPath для узла внутри XML.