XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Posttop
Love SharmaSubject: Marge node using attribute value
Author: Love Sharma
Date: 28 Aug 2014 06:50 AM
After using below xslt i am getting <b>text1 </b><b>text2 </b> and i want it <b>text1 text2</b>...

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:strip-space elements="*"/>

<xsl:template match="/Document">
<xsl:element name="html">
<xsl:element name="head">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<xsl:element name="title">Document</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:template>

<xsl:template match="page">
<div class="pages" id="{@pageseq}">
<xsl:apply-templates/>
</div>
</xsl:template>

<xsl:template match="block">
<xsl:choose>
<xsl:when test="child::row">
<table cellpadding="0" cellspacing="0" width="100%" border="1">
<xsl:apply-templates/>
</table>
</xsl:when>
<xsl:otherwise>
<p>
<xsl:apply-templates/>
</p>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<xsl:template match="formatting">
<xsl:choose>
<xsl:when test="@bold and @italic and @smallcap">
<xsl:element name="b">
<xsl:element name="i">
<xsl:element name="small">
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:when>
<xsl:when test="@bold and @italic">
<xsl:element name="b">
<xsl:element name="i">
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:when>
<xsl:when test="@bold and @smallcap">
<xsl:element name="b">
<xsl:element name="small">
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:when>
<xsl:when test="@italic and @smallcap">
<xsl:element name="i">
<xsl:element name="small">
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:when>
<xsl:when test="@bold">
<xsl:element name="b">
<xsl:apply-templates/>
</xsl:element>
</xsl:when>
<xsl:when test="@italic">
<xsl:element name="i">
<xsl:apply-templates/>
</xsl:element>
</xsl:when>
<xsl:when test="@smallcap">
<xsl:element name="small">
<xsl:apply-templates/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="word"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<xsl:template match="word">
<xsl:choose>
<xsl:when test="@superscript">
<xsl:variable name="superscript" select="@superscript"/>
<xsl:choose>
<xsl:when test="@superscript = '0'">
<xsl:variable name="data" select="substring(.,1,1)"/>
<sup>
<xsl:value-of select="$data"/>
</sup>
<xsl:value-of select="concat(substring-after(.,$data),' ')"/>
</xsl:when>
<xsl:when test="contains(@superscript,',')">
<xsl:variable name="start">
<xsl:value-of select="substring-before(@superscript,',')"/>
</xsl:variable>
<xsl:variable name="end">
<xsl:value-of select="string-length(.)"/>
</xsl:variable>
<xsl:value-of select="substring-before(.,substring(.,$start + 1,$end))"/>
<sup>
<xsl:value-of select="substring(.,$start + 1,$end)"/>
</sup>
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="sup" select="@superscript"/>
<xsl:variable name="data" select="substring(.,$sup+1,1)"/>
<xsl:value-of select="substring-before(.,$data)"/>
<sup>
<xsl:value-of select="$data"/>
</sup>
<xsl:value-of select="concat(substring-after(.,$data),' ')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="@subscript">
<xsl:variable name="subscript" select="@subscript"/>
<xsl:choose>
<xsl:when test="@subscript = '0'">
<xsl:variable name="data" select="substring(.,1,1)"/>
<sup>
<xsl:value-of select="$data"/>
</sup>
<xsl:value-of select="concat(substring-after(.,$data),' ')"/>
</xsl:when>
<xsl:when test="contains(@subscript,',')">
<xsl:variable name="start">
<xsl:value-of select="substring-before(@subscript,',')"/>
</xsl:variable>
<xsl:variable name="end">
<xsl:value-of select="string-length(.)"/>
</xsl:variable>
<xsl:value-of select="substring-before(.,substring(.,$start + 1,$end))"/>
<sub>
<xsl:value-of select="substring(.,$start + 1,$end)"/>
</sub>
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="sub" select="@subscript"/>
<xsl:variable name="data" select="substring(.,$sub+1,1)"/>
<xsl:value-of select="substring-before(.,$data)"/>
<sub>
<xsl:value-of select="$data"/>
</sub>
<xsl:value-of select="concat(substring-after(.,$data),' ')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<!-- Table -->
<xsl:template match="row">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>

<xsl:template match="cell">
<td>
<xsl:apply-templates/>
</td>
</xsl:template>

</xsl:stylesheet>


Unknowndesired-Output.zip

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.