在我最近一次从噩梦中访问 XML 数据库的尝试中,我已经非常接近了。我实际上成功了,使用测试数据库;但是,当我将它应用于我实际尝试访问的数据库而不是 BaseX 示例数据库时,我得到一个特殊品牌的错误,这是对 XML 文件的有效投诉:
通过http://basex.org/products/live-demo/
文档(“测试”):=
<item>
<item_number>1171270</item_number>
<seller_info>
<seller_company_id>6356</seller_company_id>
<seller_rating>C31</seller_rating>
<seller_rating>T150 hr.</seller_rating>
</seller_info>
<product_info>
<unit>2022</unit>
<sinfo>55 cases</sinfo>
<sinfo>Yu-gi-oh trading card pack</sinfo>
<sinfo>.45kg per unit</sinfo>
<sinfo>24.7500kg shipment</sinfo>
</product_info>
<product_info>
<unit>9291</unit>
<sinfo>7 units</sinfo>
<sinfo>Naruto, Classic, action figure</sinfo>
<sinfo>1.8kg per unit</sinfo>
<sinfo>12.6kg shipment</sinfo>
</product_info>
</item>
0:编写您自己的查询... :=
let $doc := doc('test')
for $v in $doc//item
where contains($v/product_info/unit,'9291')
return
$v/seller_info/seller_company_id
回报:
Error:
Stopped at line 3, column 39: [XPTY0004] Single item expected, (element unit { ... }, element unit { ... }) found.
我不能说我没想到会遇到这样的问题。不幸的是,我没有格式化 XML 文档——其他人做了——而且它的格式都非常糟糕,如您所见。我试图访问它的部分原因是:重组它。
有没有办法运行我试图在文档上运行的查询并获得结果而不会让这个错误吐在我身上?Single item expected
当我尝试将目标定位sinfo
为返回值时,我也在查看我的退货中的错误,对吗?有没有办法得到,例如,all of the sinfo's
?或者只有the second sinfo for each product_info
不让这个讨厌的错误向我吐口水怎么样?