Не удается получить значения атрибутов или получить ошибку 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 как таковом - оно возвращает последовательность узлов атрибутов, но, поскольку все эти узлы имеют одинаковое имя, вы не можете добавить более одного из них к одному элементу в выводе.

Другие вопросы по тегам