1

想象一下,我有一个这样的 xml:

<years>
    <year yearValue="2011">
        <month monthValue="1" workTime="10">
        <month monthValue="2" workTime="90">
    </year>
    <year yearValue="2012">
        <month monthValue="2" workTime="90">
    </year>
</years>

所以当我在我的 XML 文件中循环时

<xsl:for-each select="activityExport/years">
    <xsl:for-each select="year">
        <xsl:for-each select="month">
            <xsl:value-of select="@workTime"/>
            <xsl:value-of select="@monthValue"/>

但是我也想在@workTime 之后显示yearValue。

我怎样才能做到这一点?

谢谢。

4

1 回答 1

2

select您在标记的属性中指定的值xsl:value-of是一个 XPath 表达式。基于 XPath 语法,此值是源文档中必须写入输出的某些标记或属性的地址。您可以在最内层循环的 XPath 表达式中使用相对路径来访问yearValue父标记的属性;类似'../@yearValue'的东西。

所以我认为这样的事情可能是你的答案:

<xsl:for-each select="activityExport/years">
    <xsl:for-each select="year">
        <xsl:for-each select="month">
            <xsl:value-of select="@workTime"/>
            <xsl:value-of select="../@yearValue"/>
            <xsl:value-of select="@monthValue"/>
于 2013-09-19T13:25:55.763 回答