Connecting Tech Pros Worldwide Forums | Help | Site Map

XSL : How to get particular node value of a table

Newbie
 
Join Date: Sep 2009
Posts: 18
#1: Sep 15 '09
My XML Code

Expand|Select|Wrap|Line Numbers
  1.  <DBE:Attribute name="Test1" type="Table">
  2.       <DBE:Table>
  3.          <DBE:TableHeader>
  4.             <DBE:TableColumn>t1</DBE:TableColumn>
  5.             <DBE:TableColumn>t2</DBE:TableColumn>
  6.             <DBE:TableColumn>t3</DBE:TableColumn>
  7.             <DBE:TableColumn>t4</DBE:TableColumn>
  8.             <DBE:TableColumn>t5</DBE:TableColumn>
  9.             <DBE:TableColumn>t6</DBE:TableColumn>
  10.             <DBE:TableColumn>t7</DBE:TableColumn>
  11.             <DBE:TableColumn>t8</DBE:TableColumn>
  12.             <DBE:TableColumn>t9</DBE:TableColumn>
  13.             <DBE:TableColumn>t10</DBE:TableColumn>
  14.             <DBE:TableColumn>t11</DBE:TableColumn>
  15.             <DBE:TableColumn>t12</DBE:TableColumn>
  16.             <DBE:TableColumn>t13</DBE:TableColumn>
  17.          </DBE:TableHeader>
  18.          <DBE:TableRow>
  19.             <DBE:TableData>0300 </DBE:TableData>
  20.             <DBE:TableData/>
  21.             <DBE:TableData>25</DBE:TableData>
  22.             <DBE:TableData>25</DBE:TableData>
  23.             <DBE:TableData>2009/09/03</DBE:TableData>
  24.             <DBE:TableData/>
  25.             <DBE:TableData>BAG</DBE:TableData>
  26.             <DBE:TableData>rrr</DBE:TableData>
  27.             <DBE:TableData>Yes</DBE:TableData>
  28.             <DBE:TableData>12</DBE:TableData>
  29.             <DBE:TableData>2009/03/09</DBE:TableData>
  30.             <DBE:TableData>GO</DBE:TableData>
  31.             <DBE:TableData/>
  32.          </DBE:TableRow>
  33.       </DBE:Table>
  34.    </DBE:Attribute>
  35.  
I would like my output to be ->
t7 t5 t1 t13 --> Header
---------------------------------------------------------------
BAG 2009/09/03 0300 GO --> ROW1
.................................................. ............ --> ROW2

and so on

My XSL code --> (for only selected values to be displayed)
Expand|Select|Wrap|Line Numbers
  1.                <xsl:for-each select="DBE:Attribute[@name='Test1']/DBE:Table/DBE:TableRow">
  2.               <tr bgcolor="white">
  3.                       <xsl:for-each select="DBE:TableData">
  4.                  <td>
  5.         <xsl:value-of select="node()|*">
  6.  
  7.                 </xsl:value-of> 
  8.              </td>
  9.               </xsl:for-each>
  10.               </tr>
  11.            </xsl:for-each>
  12.  

Newbie
 
Join Date: Feb 2009
Posts: 15
#2: Sep 16 '09

re: XSL : How to get particular node value of a table


Sample for your reference:

Expand|Select|Wrap|Line Numbers
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <xsl:stylesheet  version="2.0"
  3.     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  4.     xmlns:DBE="http://schemas.microsoft.com/office/word/2003/wordml">
  5.     <xsl:template match="*">
  6.         <xsl:copy>
  7.             <xsl:copy-of select="@*"/>
  8.             <xsl:apply-templates/>
  9.         </xsl:copy>
  10.     </xsl:template>
  11.     <xsl:template match="DBE:TableRow">
  12.         <tr>
  13.             <xsl:for-each select="child::DBE:TableData[count(preceding-sibling::DBE:TableData)+1=7]">
  14.                 <td>
  15.                     <xsl:apply-templates/>
  16.                 </td>
  17.             </xsl:for-each>
  18.             <xsl:for-each select="child::DBE:TableData[count(preceding-sibling::DBE:TableData)+1=5]">
  19.                 <td>
  20.                     <xsl:apply-templates/>
  21.                 </td>
  22.             </xsl:for-each>
  23.             <xsl:for-each select="child::DBE:TableData[count(preceding-sibling::DBE:TableData)+1=1]">
  24.                 <td>
  25.                     <xsl:apply-templates/>
  26.                 </td>
  27.             </xsl:for-each>
  28.             <xsl:for-each select="child::DBE:TableData[count(preceding-sibling::DBE:TableData)+1=12]">
  29.                 <td>
  30.                     <xsl:apply-templates/>
  31.                 </td>
  32.             </xsl:for-each>
  33.         </tr>
  34.     </xsl:template>
  35. </xsl:stylesheet>
Newbie
 
Join Date: Sep 2009
Posts: 18
#3: Sep 16 '09

re: XSL : How to get particular node value of a table


I applied the logic shared by you...and got the expected values.


Thanks a lot.!!!
It worked....................
Reply


Similar XML bytes