xsl-list
[Top] [All Lists]

Creating then using elements from xml table <row><entry> content?

2003-10-29 11:25:45
Hi. I've not found any references for this and would appreciate some help.
With what I've tried so far, I don't get errors BUT I don't get output
either!

My xml source (created using an xml authoring tool) contains the following:

<tools_materials>
<table><tgroup cols="2">
<?PubTbl tgroup dispwid="6.78in"?>
<colspec colname="col1" colwidth="1.26*"/><colspec colname="col2"
colwidth="0.74*"/>
<tbody><row><entry>Tool/Material</entry>
<entry>Part Number</entry></row>
<row><entry>Operations Manual</entry><entry>092022-001</entry>
</row><row><entry>Machine Management System</entry>
<entry>10-MS30-1000-021</entry></row></tbody></tgroup></table>
</tools_materials>

In my stylesheet, I need to create parent/child elements from the table
content (excluding row 1), ex:

   Column 1 = <tool_mat>Operations Manual
   Column 2 =      <tool_partno>092022-001</tool_partno>
                     </tool_mat>                 

I then need to use those newly created elements in an html table. I have the
following xsl (the first template is just my feeble attempt):

<xsl:template match="tools_materials/table">    <!-- just trying to get the
first element -->
        <xsl:for-each select="row[position() != 1]">
                  <xsl:element name="tool_mat">
                <xsl:value-of
select="normalize-space(cell[1])"/></xsl:element>
        </xsl:for-each>
</xsl:template>
        
<xsl:template match="tools_materials">
     <table border="1" width="100%" cellpadding="4">
        <tr bgcolor="orange" valign="middle">
            <th colspan="3" align="left">
                <h3>TOOLS AND MATERIALS</h3>
            </th>
        </tr>
        <tr>
             <td colspan="2">
                  <b>Tool/Material</b>
             </td>
             <td align="center">
                <b>Jabil Part No.</b>
             </td>
        </tr>
             <xsl:apply-templates select="tools_materials/table"/>
                 <xsl:apply-templates select="tool_mat"/>
      </table>
</xsl:template>

<xsl:template match="tool_mat">
        <tr>
             <td align="left" valign="top" width="60%">
                <table border="0">
                <tr>
                     <td align="left" valign="top">
                          <xsl:number level="single" format="1. "
count="tool_mat" />&#160;
                     </td>
                     <td align="left" valign="top">
                        <xsl:value-of select="." />
                     </td>
                </tr>
                </table>
             </td>
             <td align="left" valign="top" width="40%">
                <xsl:apply-templates select="tool_partno"/>
             </td>
        </tr>
</xsl:template>

<xsl:template match="tool_partno">
        <xsl:choose>
                <xsl:when test="text()">
                        <xsl:value-of select="."/>
                </xsl:when>
        <xsl:otherwise>NA</xsl:otherwise>
        </xsl:choose>
                <xsl:apply-templates select="tool_partno"/>
</xsl:template>



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



<Prev in Thread] Current Thread [Next in Thread>