尝试访问每个节点中的多个节点

Trying to access multiple nodes in a for each

在我的 XML 中有多个节点 ex。 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>

结果 table 和

fluffy       wolfy
snuggles     puppy

我正在使用 XSLT 1.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>