未过滤的搜索给出了错误的结果。
请找到以下 xml 示例和问题。
样本:
<root>
<id1>11</id1>
<elem1>ee1</elem1>
<ele2>ee2</ele2>
<entry>
<volume>10</volume>
<issue>10</issue>
<elemEntry>eleme</elemEntry>
</entry>
<entry>
<volume>20</volume>
<issue>20</issue>
<elemEntry>eleme</elemEntry>
</entry>
<entry>
<volume>20</volume>
<issue>10</issue>
<elemEntry>eleme</elemEntry>
</entry>
<entry>
<volume>10</volume>
<issue>20</issue>
<elemEntry>eleme</elemEntry>
</entry>
</root>
我必须获得具有<volume> & <issue>
两者的值组合的条目节点应该出现在<entry>
节点下(例如:volume-10 & issue-10,volume-10 & issue-20)
如上例所示,我需要整个入口节点为<volume> (10), <issue> (10)
.
它不应该将其他入口节点返回给我,因为其他入口节点没有所需的volume
(值 10)、issue
(值 10)组合。
请在下面找到cts:search
我正在做的事情。
cts:search(
doc("/sample.xml")//entry,
cts:and-query((
cts:element-value-query(xs:QName("volume"), "10", ("case-insensitive","unstemmed")),
cts:element-value-query(xs:QName("issue"), "10", ("case-insensitive","unstemmed"))
)),
"unfiltered"
)
/sample.xml
假设示例 xml 使用uri存储在数据库中
上面的查询也将其他条目(<entry>
)返回给我。
如果我将执行“过滤”搜索,上面的查询将返回正确的结果。
请告诉我,为什么会发生这种情况以及解决方案是什么。
如果有任何其他好方法可以让入口节点具有组合,volume and issue
请告诉我。