@banny_name

Как узнать путь до элемента xml?

есть xml:
<w:body>
    <w:p>
        <w:text>Текст</w:text>
    </w:p>
</w:body>


как мне узнать весь путь до "Текст"...

Нужно оперировать с этими данными..

в xPath не нашел нужного
  • Вопрос задан
  • 1632 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kontiv
например, на Xquery можно так

declare namespace w = "w";

declare function local:recursion ( $node as element() ) as xs:string {
  if ( $node/parent::* )
  then (
    local:recursion ( $node/parent::* ) || "/" || $node/name() ||
    "[" || count( $node/preceding-sibling::*[ name() = $node/name() ] )+1 || "]"
   )
  else ( $node/name() )
};
 
let $xml := 
   <w:body>
      <w:p>
          <w:text>Текст</w:text>
      </w:p>
      <w:p>
          <w:text>Текст</w:text>
          <w:text>Текст</w:text>
      </w:p>
  </w:body>
  
for $node in $xml//w:text
return
  local:recursion( $node )

Ответ получится примерно такой:
w:body/w:p[1]/w:text[1]
w:body/w:p[2]/w:text[1]
w:body/w:p[2]/w:text[2]
Ответ написан
Комментировать
@rowdyro
делаете xpath запрос, а потом от найденного элемента идете наверх по родителям.

php.net/manual/ru/class.domnode.php - parentNode
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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