我有以下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>