xml - XPath 可以跨 XML 的两个子树执行外键查找吗?

标签 xml xslt xpath subtree xslkey

假设我有以下 XML...

<root>
  <base>
    <tent key="1" color="red"/>
    <tent key="2" color="yellow"/>
    <tent key="3" color="blue"/>
  </base>
  <bucket>
    <tent key="1"/>
    <tent key="3"/>
  </bucket>
</root>

...返回“桶”包含“红色”和“蓝色”的 XPath 是什么?

最佳答案

如果您使用的是 XSLT,我建议您设置一个 key :

<xsl:key name="tents" match="base/tent" use="@key" />

然后您可以获得 <tent><base> 内与特定 key使用

key('tents', $id)

然后你可以做

key('tents', /root/bucket/tent/@key)/@color

或者,如果$bucket是一个特别的<bucket>元素,

key('tents', $bucket/tent/@key)/@color

关于xml - XPath 可以跨 XML 的两个子树执行外键查找吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/142010/

相关文章:

xml - XML声明节点是强制的吗?

python - 如何使用 Selenium 和 Python 提取下拉菜单所选选项的文本

c# - Visual Studio "Start xslt debugging"选项不可见

XSLT: "test"结果困惑

xslt 2.0 xsl :number recursive counter - more efficient way?

xml - XPath 中的元素计数

sql - XQuery [nodes()] : Syntax error near '<eof>' , 需要一个步骤表达式

xml - 没有重复的 XSLT 副本

c# - 将 XDocument 转换为 XmlDocument,反之亦然

xml - 是否有一种 3D 格式是 SVG 的 3D 扩展?