我有一个简单的xml文件:

<catalog>
  <product dept="WMN">
    <number>557</number>
    <name language="en">Fleece Pullover</name>
    <colorChoices>navy black</colorChoices>
  </product>
  <product dept="ACC">
    <number>563</number>
    <name language="en">Floppy Sun Hat</name>
  </product>
  <product dept="ACC">
    <number>443</number>
    <name language="en">Deluxe Travel Bag</name>
  </product>
  <product dept="MEN">
    <number>784</number>
    <name language="en">Cotton Dress Shirt</name>
    <colorChoices>white gray</colorChoices>
    <desc>Our<i>favorite</i>shirt!</desc>
  </product>
</catalog>

我正在读一本叫做XQuery by Priscila Walmsley的书,上面说要输入命令:
doc("catalog.xml")/*/product/@dept

所以我输入basex
xquery doc("catalog.xml")/*/product/@dept

我得到了这个错误:
Error:
[SENR0001] Attributes cannot be serialized:attribute dept { "WMN" }.

尽管书上说:
将返回输入文档中的四个部门属性。
我做错什么了?

最佳答案

Basex对序列化的要求很严格。如果将属性节点强制为字符串,则不会有任何抱怨:

xquery doc("catalog.xml")/*/product/@dept/string()

关于xml - BaseX属性无法序列化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24663393/

10-09 19:37