通过匹配其他组的节点来查找组中的节点

时间:2018-11-28 09:05:54

标签: xml xslt xpath xslt-1.0

我有这样的XML文档:

<groups>
  <group id="A">
    <file id="kr3" href="..."/>
    <file id="6ft" href="..."/>
    ...
  </group>
  <group id="B">
    <file id="8dg" href="..."/>
    <file id="g32" href="..."/>
    ...
  </group>
</groups>
<structs>
  <struct id="abc1">
    <filepointer id="kr3"/>
    <filepointer id="8dg"/>
    ...
  </struct>
  <struct id="abc2">
    <filepointer id="6ft"/>
    <filepointer id="g32"/>
    ...
  </struct>
</struct>

在XSLT中,我想找到targetFileUrl。

struct定义了不同group节点的文件之间的映射。因此,我提供了一个sourceUrl和一个targetGroupId。我想找出在struct中映射的匹配节点。

所以我需要这样:

  • sourcehUrl = 'http://...'
  • targetGroupId = 'B'
  • sourceFileId = //file[@href=$sourcehUrl]/@id
  • structId = //struct/filepointer[@id=$sourceFileId]/../@id
  • targetFileId = ???
  • targetFileUrl = //file[@id=$targetFileId]/@href

如何找到与给定结构中的一个filepointer匹配的正确文件ID?

0 个答案:

没有答案