在我的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
我正在使用XSLT 1.0
编辑:试图更好地澄清我的问题,对不起,我通常不善于提问。
提前感谢您的帮助。
答案 0 :(得分:0)
XML
<cats>
<cat0>Hello</cat0>
<cat1>World</cat1>
<dog0>Ignore</dog0>
</cats>
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<xsl:for-each select="/cats/*">
<xsl:if test="substring(local-name(), 1, 3) = 'cat'">
<xsl:element name="result">
<xsl:value-of select="local-name()"/>
<xsl:value-of select="."/>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
结果
<result>cat0Hello</result>
<result>cat1World</result>