在我的XML中有多个节点, CAT1,CAT2,CAT3,...,CAT(N)。我想显示它们的值,但它是动态的,并基于NUMOFCATS。尝试访问每个中的多个节点
为,我想
for(i=0;i<NUMOFCATS;i++){
String string = CAT;
append the value of i to string; //so if i=0 then string=CAT0
<xsl:value-of select="$string" />
}
所以那么结果将显示
CAT0
CAT1
...
CAT(NUMOFCATS)
编辑的值的一些伪代码:加入一些示例XML
<root>
<BIRD>ignore</BIRD>
<CAT1>fluffy</CAT1>
<CAT2>snuggles</CAT2>
<NUMOFPETS>2</NUMOFPETS>
<DOG1>wolfy</DOG1>
<DOG2>puppy</DOG2>
</root>
XSLT
<xsl:for-each select="root/*">
<fo:table-row height="8pt">
<fo:table-cell border-color="black" border-width="1pt"
border-style="solid">
<fo:block text-indent="5pt">
<xsl:if test="substring(local-name(),1,3) = 'CAT'">
<fo:inline color="red">
<xsl:value-of select="." />
</fo:inline>
</xsl:if>
</fo:block>
</fo:table-cell>
<fo:table-cell border-color="black" border-width="1pt"
border-style="solid">
<fo:block text-indent="5pt">
<xsl:if test="substring(local-name(),1,3) = 'DOG'">
<fo:inline color="red">
<xsl:value-of select="." />
</fo:inline>
</xsl:if>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
结果 一个表
fluffy wolfy
snuggles puppy
和IM使用XSLT 1.0
编辑:试图澄清我的问题比较好,对不起,我通常是坏在问问题。
在此先感谢您的帮助。
也请出示您所期望的输出(_actual_输出,因为这个样本文件是输入)。谢谢。 –
你的问题不清楚。请提供一个输入和预期输出的例子,并解释转换背后的逻辑。 ---同样说明如果使用XSLT 1.0或2.0。 –