Subject: Re: wordml to xml (formatting) using loop
From: "Imsieke, Gerrit, le-tex" <gerrit.imsieke@xxxxxxxxx>
Date: Fri, 15 Mar 2013 10:43:37 +0100
|
Joga,
Id 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>
--
Gerrit Imsieke
Geschdftsf|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.imsieke@xxxxxxxxx, http://www.le-tex.de
Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930
Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard Vvckler
|