xsl-list
[Top] [All Lists]

Fw: [xsl] Need help combing two elements

2009-03-29 17:56:33

 <Row Type="Data">
  <Cell>Mar 23, 2006</Cell>
  <Cell>08:44</Cell>
 </Row>

 So how would your sample XSLT work with my sample XML?

XSLT:

<xsl:template match="Row">
  <both a="{Cell[1]}" b="{Cell[2]}"/>,
</xsl:template>

Output:

<both a="Mar 23, 2006" b="08:44"/>


If you want to be able to transform an arbitrary number of <Cell> entries:>

Input:

<table>
 <Row Type="Data">
 <Cell>Mar 23, 2006</Cell>
  <Cell>08:44</Cell>
 </Row>>
 <Row Type="Data">
  <Cell>Mar 23, 2006</Cell>
  <Cell>08:53</Cell>
  <Cell>text</Cell>>
 </Row>>
</table>

XSLT:

<xsl:template match="Row">>
  <xsl:element name="row">>
    <xsl:for-each select="child::*"><xsl:value-of select="."/>;
</xsl:for-each>
  </xsl:element>
</xsl:template>>

OUTPUT:

 <row>Mar 23, 2006; 08:44; </row>
 <row>Mar 23, 2006; 08:44; text; </row>


Mit besten Grüßen / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Erich Baier
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
----- Forwarded by Hermann Stamm-Wilbrandt/Germany/IBM on 03/29/2009 10:51
PM -----
                                                                       
             "Fatbob"                                                  
             <fatbob73(_at_)hotmail                                         
             .con>                                                      To
                                       
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
             03/29/2009 11:06                                           cc
             PM                                                        
                                                                   Subject
                                       Re: [xsl] Need help combing two 
             Please respond to         elements                        
             xsl-list(_at_)lists(_dot_)mu                                       
  
              lberrytech.com                                           
                                                                       
                                                                       
                                                                       
                                                                       




Thanks for the reply Wendell, but man I really slow at understanding XSL.

You sample looks to be quick simple, yet I'm not getting the desired
results. Perhaps it's because you're sample XML is quite a bit different
than my sample.

Here again is my sample (I simplified it further from my previous email)...

<Row Type="Data">
 <Cell>Mar 23, 2006</Cell>
 <Cell>08:44</Cell>
</Row>

So how would your sample XSLT work with my sample XML?

Thanks!

----- Original Message -----
From: "Wendell Piez" <wapiez(_at_)mulberrytech(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Friday, March 27, 2009 4:05 PM
Subject: Re: [xsl] Need help combing two elements


Fatbob:

Input:

<data>
  <one a="1"/>
  <two b="2"/>
</data>

XSLT:

<xsl:template match="data">
  <both a="{one/@a}" b="{two/@b}"/>
</xsl:template>

Output:
<both a="1" b="2"/>

Or more generally: decide on a context from which all the necessary data
components for your new element are visible (any context will do but some

are easier than others), and make the new element, pulling in whatever
data you want from wherever you find it.

In fact, it's pretty hard to write XSLT that doesn't do this, in a very
general way. If you think in terms of elements and attributes being nodes

on a tree, rather than stuff written with tags (as you really must to get

anywhere with XSLT), it starts seeming very normal.

Cheers,
Wendell

At 02:11 PM 3/27/2009, you wrote:
Thanks for taking the time to write that email. Greatly appreciate it.

To answer your question about moving to XSLT 2.0, unfortunately that is
not
an option. So I'll have to find a solution to merging the two cells and
formatting the date using whatever functionality is available in 1.0.

So far I'm still in the dark as to how I can merge the cells.





======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


--~------------------------------------------------------------------
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>
--~--




--~------------------------------------------------------------------
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>
--~--



--~------------------------------------------------------------------
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>
--~--