引用另一个循环



我有以下xml

<batch>
    <items>
         <item>...</item>
         <item>...</item>
         <item>...</item>
         <item>
              <place>...</place>
              <stuff>...</stuff>
         </item>
    <items>
    <tasks>
        <task>
             <place>...</place>
             <time>...</time>
        <task>...</task>
        <task>...</task>
        <task>...</task>
    </tasks>
<batch>

如果任务和项目在同一位置,我都需要每次写下任务的时间以及任务的时间。我打算使用

<xsl:for-each select="//batch/items/item">
      <xsl:value-of select="stuff"/>
      <xsl:for-each select="//batch/tasks/task">
             <xsl:iftest="item/place=task/place">task/time</xsl:if>
      </xsl:for-each>
</xsl:for-each>

但是,项目/地点的引用是错误的。我该如何解决?这甚至可能吗?预先感谢!

获取与当前项目相匹配的任务,首先定义 key as:

<xsl:key name="task-by-place" match="task" use="place" />

然后将其用作(例如(:

<xsl:template match="/batch">
    <xsl:for-each select="items/item">
        <xsl:copy>
            <xsl:copy-of select="stuff"/>
            <xsl:copy-of select="key('task-by-place', place)/time"/>
        </xsl:copy>
    </xsl:for-each>
</xsl:template>

相关内容

  • 没有找到相关文章

最新更新