0

我有一个 xml 文档,我在其中使用了 ID 和 IDREF,希望它们可以使用 xpath 在 xlst 中连接,但我无法找到解决方法。我的 xml 是这样的:

<root>
  <list>
    <item id="c1"> <description> Class 1 </description> </item>
    <item id="gc1"> <description> Gym-class 1 </description> </item>
    <item id="c2"> <description> Class 2 </description> </item>
  </list>

  <school name="abc">
     <schedule>
       <class idref="c1">
         <day>monday</day>
         <day>friday</day>
       </class>
     </schedule>
  </school>
  <school name="def">
     <schedule>
       <class idref="gc1">
         <day>tuesday</day>
         <day>thurday</day>
       </class>
     </schedule>
  </school>
</root>

我想以一种方式建立连接,当我引用 idref 中的值时,在输出(即 html)上,显示的将是列表中的描述,在开始时。这甚至可能吗?

4

1 回答 1

0

是的。这很容易实现。但输出取决于您的 XPath 版本。
以下 XPath 表达式

/root/list/item[@id=/root/school/schedule/class/@idref]/description

返回 XPath-1.0 中的第一项和 XPath-2.0 及更高版本中的一组节点。
所以输出是(没有应用任何特殊连接)

  1. Class 1(1.0)
  2. Class 1 Gym-class 1它返回满足要求(2.0+)的所有项目。

如果你想得到某个<item>的描述,你应该用/root/school/schedule/class/@idref你想从<item>列表中检索的 idref 值替换上面表达式中的 ..

于 2021-12-08T23:49:03.933 回答