xsl-list
[Top] [All Lists]

Re: Recursing in XSLT

2003-06-23 18:10:22
Hello All-

I am converting the XML attached below to HTML using XSL Style Sheet. We
could have unlimited number of <HSDataContainerType> tags with other
<HSString> or <HSInteger> etc. tags inside those. I don't know how to
recursively go thru. all tags when i don't know the number of
<HSDataContainerType> tags inside one another. Any help or hint would be
greatly appreciated.



XML:
        <HSDataContainerType list="true" name="Inputs" required="true"
systype="true">
                <HSString name="textField_1" required="true" xmlNodeType="1" />
                <HSInteger name="integerField_1" required="true" 
xmlNodeType="1" />
                <HSDouble name="decimalField_1" required="true" xmlNodeType="1" 
/>
                <HSDate name="dateField_1" required="true" xmlNodeType="1" />
                <HSBinary name="binaryField_1" required="true" xmlNodeType="1" 
/>
                <HSBoolean name="trueFalseField_1" required="true" 
xmlNodeType="1">
                        <DefaultValue>false</DefaultValue>
                </HSBoolean>
                <HSDataContainerType name="DataContainer_1_1" required="true" 
revision="">
                        <HSString name="textField_1_1" required="true" 
xmlNodeType="1" />
                        <HSInteger name="integerField_1_1" required="true" 
xmlNodeType="1" />
                        <HSDataContainerType name="DataContainer_1_1_1" 
required="true">
                                <HSString name="textField_1_1_1" 
required="true" />
                                <HSInteger name="integerField_1_1_1" 
required="true" />
                        </HSDataContainerType>
                </HSDataContainerType>
        </HSDataContainerType>

XSL (use to tackle only a set number of <HSDataContainerType> tags, 1 in
this case):

<xsl:template match="HSDataContainerType">

        <xsl:if test="contains(@name, 'Inputs')">

                <b><p><xsl:value-of select="@name"/>:</p></b>

                <xsl:comment>loop thru all elements in 'Inputs'</xsl:comment>

                <xsl:for-each select="./HSString">
                        <xsl:value-of select="@name"/>;
                </xsl:for-each>

                <xsl:for-each select="./HSDouble">
                        <xsl:value-of select="@name"/>;
                </xsl:for-each>

                <xsl:for-each select="./HSBoolean">
                        <xsl:value-of select="@name"/>;
                </xsl:for-each>

                <xsl:for-each select="./HSBinary">
                        <xsl:value-of select="@name"/>;
                </xsl:for-each>

                <xsl:for-each select="./HSInteger">
                        <xsl:value-of select="@name"/>;
                </xsl:for-each>

                <xsl:for-each select="./HSDate">
                        <xsl:value-of select="@name"/>;
                </xsl:for-each>

</xsl:if> <!-- inputs ends here -->



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>
  • Re: Recursing in XSLT, Ahsan <=