return - XQuery:如何从标签中获取特定值?
问题描述
假设我们有这个 xml:
<question>
<test id="1">
<tag k="a" v="1"/>
<tag k="a" v="2"/>
<tag k="b" v="3"/>
</test>
<test id="2">
<tag k="a" v="1"/>
<tag k="a" v="4"/>
<tag k="b" v="5"/>
</test>
<test id="3">
<tag k="a" v="2"/>
<tag k="a" v="6"/>
<tag k="b" v="7"/>
</test>
</question>
如果 k = "a" AND v = "1",我想返回测试的所有值 v,如下所示:
v="3"
v="5"
到目前为止我的方法:
for $i in //test
where ($i/tag[@k = 'a' and @v = '1'])
return $i/tag/@v
但这是不正确的,因为那是回报:
v="1"
v="2"
v="3"
v="1"
v="4"
v="5"
感谢您的帮助 :)
解决方案
您可能正在寻找类似的东西
for $i in //test
where ($i/tag[@k = 'a'][@v="1"])
return $i/tag[@k="b"]/@v
推荐阅读
- c# - 具有泛型类型和泛型列表的类
- c - 如何创建函数的内联副本
- spring - 为什么 JpaRepository.delete() 在删除实体之前检索它?
- c# - 任何人都可以帮助 C# 控制台应用程序中的新手吗?
- javascript - 切换时汉堡菜单不会打开
- python - Jupyter 笔记本(Web 界面)将 matplotlib 绘图缩小 2 倍
- x86 - 由于 cpu 乱序执行或缓存一致性问题,是否需要内存屏障?
- python - 无法确定 SyntaxError 的原因:在第 17 行,<=100
- r - t 检验中的错误:没有足够的 x 观察值
- python - 使用 Python 和 Selenium 访问网站 https://www.aliexpress.com/ 后如何点击关闭横幅