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