मैं है निम्न XML स्रोत:बिल्ड XML संरचना
<element not-relevant="true" bold="true" superscript="true" subscript="false" text="stuff"/>
किसी भी क्रम में, मैं विशिष्ट विशेषताओं के माध्यम से लूप (यानी केवल लोगों को जो एचटीएमएल मैं निर्माण कर रहा हूँ से संबंधित हैं की जरूरत है : बोल्ड/सुपरस्क्रिप्ट/सबस्क्रिप्ट, आदि) और जहां इन विशेषताओं में से एक 'सही', उत्पादन नेस्ट तत्वों का मूल्यांकन निम्नलिखित उत्पादन प्राप्त करने के लिए:
<strong>
<sup>
stuff
</sup>
</strong>
मुझे लगता है मैं प्रत्यावर्तन किसी प्रकार का उपयोग करने की आवश्यकता निम्नानुसार (अनंत लूप के बिना, निश्चित रूप से):
<xsl:template match="element">
<xsl:call-template name="content">
<xsl:with-param name="text" select="@text"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="content">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="@bold = 'true'">
<strong>
<xsl:copy>
<xsl:call-template name="content">
<xsl:with-param name="text" select="$text"/>
</xsl:call-template>
<xsl:copy>
</strong>
</xsl:when>
<xsl:when test="@subscript = 'true'">
<sub>
<xsl:copy>
<xsl:call-template name="content">
<xsl:with-param name="text" select="$text"/>
</xsl:call-template>
<xsl:copy>
</sub>
</xsl:when>
<xsl:when test="@superscript = 'true'">
<sup>
<xsl:copy>
<xsl:call-template name="content">
<xsl:with-param name="text" select="$text"/>
</xsl:call-template>
<xsl:copy>
</sup>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" disable-output-escaping="yes"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
कोई विचार? मैं सबसे साफ एक्सएसएलटी 2.0 समाधान की तलाश में हूं और मदद की सराहना करता हूं।
धन्यवाद,
कभी नहीं पता था कि यह अस्तित्व - अद्भुत समाधान है। धन्यवाद! – Aaron