Subject: RE: [xsl] problem with spreadsheet-like xml structure From: max@xxxxxxxxxx Date: Sat, 11 Jun 2005 23:00:51 +0200 (CEST) |
Thanks for the (very fast) answer! Actually there are a lot more cells, so I have to use: <xsl:if test="(position() = 2) or (position() = 7) or (position() = 12) or (position() = 17) or (position() = 22) "> <xsl:element name="location"> <xsl:element name="name"> <xsl:value-of select="./ss:Data"/> </xsl:element> <xsl:attribute name="arrival"> <xsl:value-of select="following-sibling::ss:Cell/ss:Data[1]"/> </xsl:attribute> </xsl:element> </xsl:if> But it doesn't work, the (real) data is: <Row> <Cell><Data ss:Type="String">Abrikosov</Data></Cell> <Cell><Data ss:Type="String">Moscow, Russia</Data></Cell> <Cell><Data ss:Type="DateTime">1928-06-25T00:00:00.000</Data></Cell> <Cell ss:StyleID="s21"><Data ss:Type="String">55.7506N</Data></Cell> <Cell ss:StyleID="s39"><Data ss:Type="String">37.6276E</Data></Cell> <Cell ss:Index="7"><Data ss:Type="String">Argonne, Illinois, USA</Data></Cell> <Cell ss:StyleID="s26"><Data ss:Type="Number">1991</Data></Cell> <Cell ss:StyleID="s39"><Data ss:Type="String">41.6688N</Data></Cell> <Cell ss:StyleID="s39"><Data ss:Type="String">87.9846W</Data></Cell> <Cell><Data ss:Type="String">National laboratory</Data></Cell> <Cell><Data ss:Type="String">Stockholm, Sweden </Data></Cell> <Cell ss:StyleID="s26"><Data ss:Type="Number">2003</Data></Cell> <Cell ss:StyleID="s39"><Data ss:Type="String">59.3323N</Data></Cell> <Cell ss:StyleID="s22"><Data ss:Type="String">18.0651E</Data></Cell> <Cell><Data ss:Type="String">Nobel Prize inPhysics</Data></Cell> <Cell ss:StyleID="Default"><Data ss:Type="String">Argonne, Illinois, USA</Data></Cell> <Cell><Data ss:Type="Number">1991</Data></Cell> <Cell ss:StyleID="s39"><Data ss:Type="String">41.6688N</Data></Cell> <Cell ss:StyleID="s39"><Data ss:Type="String">87.9846W</Data></Cell> <Cell><Data ss:Type="String">National Laboratory</Data></Cell> <Cell ss:Index="23" ss:StyleID="Default"/> <Cell ss:StyleID="Default"/> <Cell ss:Index="29" ss:StyleID="Default"/> </Row> > If you know that the data is in groups of three, you can use > > <xsl:template match="row"> > <xsl:for-each select="cell[position() mod 3 = 1]"> > <location> > <name><xsl:value-of select="."/></name> > <note><xsl:value-of select="following-sibling::cell[1]"/></note> > <date><xsl:value-of select="following-sibling::cell[2]"/></date> > </location> > </ > </ > > Michael Kay > http://www.saxonica.com/ > > >> -----Original Message----- >> From: max@xxxxxxxxxx [mailto:max@xxxxxxxxxx] >> Sent: 11 June 2005 21:40 >> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >> Subject: [xsl] problem with spreadsheet-like xml structure >> >> Hi all, >> >> I am trying to convert data in an Excel's xml-format to a >> custom xml-format. >> The logical structure of the Excel data is >> >> <table> >> <row> >> >> <cell> location1 <cell> >> <cell> note <cell> >> <cell> date1 <cell> >> >> <cell> location2 <cell> >> <cell> note2 <cell> >> <cell> date2 <cell> >> >> <cell> location3 <cell> >> <cell> note3 <cell> >> <cell> date3 <cell> >> >> </row> >> <row> >> ... >> </row> >> </table> >> >> What I need is: >> >> <row> >> >> <location date="date1"> >> <name>location1</name> >> <note>note1</note> >> </location> >> >> <location date="date2"> >> <name>location2</name> >> <note>note2</note> >> </location> >> >> <location date="date3"> >> <name>location3</name> >> <note>note3</note> >> </location> >> >> <row> >> >> I can get the location cells ( using position() ) and place >> the cell data >> into my location element but >> then I don't know how to place the following cells inside >> this location >> element. >> >> <xsl:if test="position() =1 "> >> <xsl:element name="location"> >> <xsl:element name="name"> >> <xsl:value-of select="."/> >> </xsl:element> >> >> <!-- PLACE HERE NEXT TWO CELLS --> >> >> </xsl:element> >> </xsl:if>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] problem with spreadsheet-, Michael Kay | Thread | RE: [xsl] problem with spreadsheet-, max |
RE: [xsl] problem with spreadsheet-, Michael Kay | Date | RE: [xsl] problem with spreadsheet-, max |
Month |