[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Closing and opeing tag in that order

Subject: Re: Closing and opeing tag in that order
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Thu, 26 Dec 2002 14:15:50 -0800 (PST)
xsl closing tags
> The document is a valid  and well formed finally even though i add 
> the tags in this manner </tag1><tag1>.
> Regrouping the elements is not feasible in my situation as several 
> other things would be affected. I was hence wondering whether there 
> was any solution. If I use <xml:output> tag to show as "text". would 
> that work??


In XSLT there are no "starting tags" and "ending tags" ... only nodes,
that are atomic and cannot be broken in half.

One transformation that produces the result you need is the following:

<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>
  
  <xsl:template match="/tag1">
     <xsl:for-each select="tag2">
       <xsl:variable name="vPrev" select="preceding-sibling::tag2[1]"/>
       
       <xsl:variable name="vPastNodes" 
        select="count($vPrev/preceding-sibling::node())"/>
        
        <xsl:variable name="vCurrentGroup"
         select="preceding-sibling::node()
                   [count(preceding-sibling::node())
                  >=
                    $vPastNodes
                   ]"/>
        
        <tag1><xsl:copy-of select="$vCurrentGroup"/></tag1>

     </xsl:for-each>
     
     <tag1><xsl:copy-of select="tag2[last()]"/></tag1>
  </xsl:template>
</xsl:stylesheet>

When applied on the source xml document provided by you:

<tag1>
    data1
  <tag2>data2</tag2>
    data3
  <tag2>data4</tag2>    
  <tag2>data5</tag2>  
</tag1>


the result is:

<tag1>
    data1
  </tag1>
<tag1>
   <tag2>data2</tag2>
    data3
  </tag1>
<tag1>
   <tag2>data4</tag2>
</tag1>
<tag1>
   <tag2>data5</tag2>
</tag1>


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

 


"Chandra -" <pchandramohan@xxxxxxxxxxx> wrote in message
news:F155dnjQ8vjqueolj8J000006d5@xxxxxxxxxxxxxx
> Hi Tom,
>   Thanks for the quick reply. Well for the tag structure you
mentioned
> ------
> >>If you had a document like this, what should
> the output look like?
> 
> <tag1>
>     data1
>     <tag2>data2</tag2>
>     data3
>     <tag2>data4</tag2>
>     <tag2>data5</tag2>
>   </tag1>
> -----
> the output should be
> 
> 
> <tag1>
>     data1
> </tag1><tag1>
>     <tag2>data2</tag2>
>     data3
> </tag1><tag1>
>     <tag2>data4</tag2>
> </tag1><tag1>
>     <tag2>data5</tag2>
>   </tag1>
> 
> You see the dtd states that "a <tag1> element can have a  SINGLE
<tag2> 
> element as child provided <tag1> is IMMEDIATELY followed by <tag2>.
> 
>   The document is a valid  and well formed finally even though i add
the 
> tags in this manner </tag1><tag1>.
>   Regrouping the elements is not feasible in my situation as several
other 
> things would be affected. I was hence wondering whether there was any

> solution. If I use <xml:output> tag to show as "text". would that
work??
> Thanks in advance
> Regards,
> Chandra
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.