我想从某个文件夹中的大量 XML 文件中获取某个名称的属性列表。
在这个问题的指导下:XPath Function to query across 50 XML Files? ),我也在尝试使用 XQuery 进行文件查询,并安装 Saxon 的 .Net 版本,我编写了如下查询:
Query.exe -qs:"collection('file:///Temp?select=*.xml')//group[1]/product[1]"
但是从那我得到元素下面的所有东西,包括所有子节点。而且我找不到仅获取属性(或更具体地说是某个“prd_id”属性)的方法。
XML 看起来像这样(简化版):
` <group>
<product prd_id="2047">
<articles>art</articles>
<articles>art</articles>
<articles>art</articles>
</product>
</group>
我希望我的 XQuery 搜索结果是一个 prd_id 属性列表,或者一个没有子元素的纯产品节点列表(文章节点在真实文件中非常广泛,并且会阻止我挑选/复制有问题的产品属性)。
只需将 /@prd_id 添加到查询中就会导致如下错误:
First the query:
>Query.exe -qs:"collection('file:///Temp?select=*.xml')//group[1]/product[1]/@prd_id"
没有systemId的模块第1行出错:XPTY0004:无法创建父节点为文档节点的属性节点(prd_id)查询处理失败:报告运行时错误
谢谢, 安德烈亚斯