Joga,
I’d recursively call a named template that creates the wrapping
elements. With each recursion, the stack of formatting instructions will
shrink by one, until ultimately the stack is empty and w:t will be
processed.
See this ShareXML paste: http://www.sharexml.com:80/x/get?k=LLUgPpFyiAk1
Please note that according to the OOXML schema, the formatting
instructions may only occur in what seems like an alphabetical order,
that is, w:b, w:i, w:u. So your second example should not happen in
practice. It will, however, be handled by the stylesheet nonetheless.
Gerrit
On 15.03.2013 08:18, Joga Singh Rawat wrote:
Hi Team,
Anybody who have an idea to handle it in the best way. I don't have any
idea, how to handling it using loop in xslt 2.0. Right now I am getting
duplicate texts
Input
<w:r>
<w:rPr>
<w:b/>
<w:i/>
<w:u/>
</w:rPr>
<w:t>bold italics underline text</w:t>
</w:r>
Output should be: <b><i><u>bold italics underline text</u></i></b>
<w:r>
<w:rPr>
<w:i/>
<w:b/>
<w:u/>
</w:rPr>
<w:t>italics bold underline text</w:t>
</w:r>
Output should be: <i><b><u>italics bold underline text</u></b></i>
XLSLT
<!--Text run container-->
<xsl:template match="w:r">
<xsl:choose>
<xsl:when
test="w:rPr/w:vertAlign|w:rPr/w:u|w:rPr/w:b|w:rPr/w:i|w:rPr/w:smallCaps|w:rP
r/w:highlight">
<xsl:apply-templates select="w:rPr" mode="styling"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--Text run properties container-->
<xsl:template match="w:rPr" mode="styling">
<xsl:for-each select="w:vertAlign|w:u|w:b|w:i|w:smallCaps|w:highlight">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="../../w:t"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--
Gerrit Imsieke
Geschäftsführer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany
Phone +49 341 355356 110, Fax +49 341 355356 510
gerrit(_dot_)imsieke(_at_)le-tex(_dot_)de, http://www.le-tex.de
Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930
Geschäftsführer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard Vöckler
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--