XQuery, чтобы получить список атрибутов - PullRequest
4 голосов
/ 27 ноября 2008

Если у меня есть несколько элементов Section в XML-документе, какой XQuery я использую, чтобы получить список всех значений name?

<Section name="New Clients" filePath="XNEWCUST.TXT" skipSection="False">

Ответы [ 3 ]

6 голосов
/ 27 ноября 2008

В XPath 2.0 (который является подмножеством XQuery) можно использовать следующее выражение для получения последовательности всех строковых значений атрибутов "name" элементов "Section":

for $attr in //Section/@name
 return string($attr)

Обратите внимание, что использование аббревиатуры "//", как правило, является плохой практикой, поскольку для этого может потребоваться обход целого (поддерева). В любом случае, когда структура документа известна, более предпочтительное выражение XPath (например, с использованием определенных шагов расположения) должно быть предпочтительным.

1 голос
/ 27 ноября 2008
//Section/@name

или

//Section/@name/string(.)

для строковых значений

0 голосов
/ 27 ноября 2008
 /Section/@name
...