Получить имена дочерних узлов - PullRequest
0 голосов
/ 27 марта 2019

Вот XML:

<?xml version = "1.0"?>
<class>
   <student>
      <firstname>Dinkar</firstname>
      <lastname>Kad</lastname>
      <nickname>Dinkar</nickname>
      <marks>85</marks>
   </student>
</class>

Я хочу написать XQuery, который возвращает:

firstname
lastname
nickname
marks

логически это должно работать:

/class/student/*::name()

Но это не работает!
Знаете ли вы, какой правильный XQuery для получения списка имен узлов детей?

1 Ответ

1 голос
/ 27 марта 2019

Вы можете вернуть имена детей с помощью следующего кода:

for $nam in doc("source.xml")/class/student/*
return name($nam)

Или вы можете использовать это более простое выражение:

/class/student/*/name()

Это работает только с XPath-2.0который поддерживается XQuery 1.0.

...