xsl-list
[Top] [All Lists]

Re: [xsl] wordml to xml (formatting) using loop

2013-03-15 04:44:30
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>