想象一下,我有一个像这样的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。
我该怎么做?
感谢。
答案 0 :(得分: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"/>