Не удается получить значения атрибутов или получить ошибку XQDY0025 в XQuery
Я ничего не получаю или "Ошибка XQDY0025", когда я использую XQuery ниже. Тем не менее, eXide показывает "Найдено 4 в 0,004 с", пожалуйста, помогите мне, я не могу найти проблему.
for $s in doc("customers.xml")/customers/Customer
return $s/@Name
запроситьName
атрибуты из XML-документа ниже:
<customers>
<Customer Name="c2">
<Order OrderNumber="o1">
<Item Description="ab">i1</Item>
</Order>
</Customer>
<Customer Name="c3">
<Order OrderNumber="o2">
<Item Description="cd">i2</Item>
<Item Description="ef">i3</Item>
</Order>
<Order OrderNumber="o2">
<Item Description="cfg">i5</Item>
</Order>
</Customer>
<Customer Name="c1">
<Order OrderNumber="o1">
<Item Description="abc">i1</Item>
<Item Description="def">i2</Item>
</Order>
</Customer>
<Customer Name="c4">
<Order OrderNumber="o1">
<Item Description="abc">i1</Item>
</Order>
<Order OrderNumber="o2">
<Item Description="def">i2</Item>
</Order>
</Customer>
</customers>
1 ответ
Решение
Код ошибки XQDY0025
( XQuery 1.0, XQuery 3.0) означает, что вы пытались добавить два атрибута с одинаковым именем к одному и тому же элементу.
Нет ничего плохого в выражении XPath как таковом - оно возвращает последовательность узлов атрибутов, но, поскольку все эти узлы имеют одинаковое имя, вы не можете добавить более одного из них к одному элементу в выводе.