我有一个简单的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/