搜索总高度为 4" 的项目:
我有一个关于使用 cts:search 的问题。考虑以下 xml:
<Item Id="07123114-5c14-4ba9-a6ad-7b688feb8706" ...>
...
<AttributeValue AttributeName="Mounting Application" AttributeGroup="Search_Application">Tank</AttributeValue>
<AttributeValue AttributeName="Type" AttributeGroup="Search_Type">Pump Mounting Bracket</AttributeValue>
<AttributeValue AttributeName="Overall Width" AttributeGroup="Search_Width">15/16 "</AttributeValue>
<AttributeValue AttributeName="Overall Height" AttributeGroup="Search_Height">1-3/8 "</AttributeValue>
...
</Item>
假设我要查找总高度 = 4" 的项目
我在 cts:search 中使用以下查询:
cts:search(/tx:Item,
cts:element-query(xs:QName("tx:AttributeValue"), cts:and-query((
cts:element-attribute-value-query(xs:QName("tx:AttributeValue"), xs:QName("AttributeName"), "Overall Height"),
cts:word-query("4 """, "exact"))))
)
这给了我所有总高度为 4 英寸、1/4 英寸或 3/4 英寸等的项目。这是因为单词查询进行了“包含”搜索。但我想要一个准确的值匹配。我不能做元素值查询,因为它被包裹在元素查询中(元素值不是子元素)。
我们目前有两种选择涉及更改 xml 结构: 选项 1. 使值成为 AttributeValue 元素的属性;选项 2. 使其成为子元素。
我觉得必须有一种方法可以在不更改 xml 结构的情况下获得我正在寻找的东西。请指教。