I have an XML file:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<alert>
<alertid><![CDATA[1234]]></alertid>
</alert>
<MyData>
<ConfigData Name="tableheader">TmpTable</ConfigData>
<ConfigData Name="tablelines">TmpTrans</ConfigData>
<Table:Record Name="TmpTable" xmlns:Table="urn:mysite.com:EventData">
<Table:ConfigData Name="Config1">SomeData</Table:ConfigData>
<Table:ConfigData Name="Config2">SomeOtherData</Table:ConfigData>
<Table:Field Name="Field1" LabelString="Field 1">Field 1 Value</Table:Field>
<Table:Field Name="Field2" LabelString="Field 2">Field 2 Value</Table:Field>
<Table:Field Name="Field3" LabelString="Field 3">Field 3 Value</Table:Field>
<Table:Field Name="Field4" LabelString="Field 4">Field 4 Value</Table:Field>
<Table:Record Name="TmpTrans">
<Table:Field Name="TransField1" LabelString="TransField 1">Trans Field 1 Value</Table:Field>
<Table:Field Name="TransField2" LabelString="TransField 2">Trans Field 2 Value</Table:Field>
<Table:Field Name="TransField3" LabelString="TransField 3">Trans Field 3 Value</Table:Field>
<Table:Field Name="TransField4" LabelString="TransField 4">Trans Field 4 Value</Table:Field>
</Table:Record>
</Table:Record>
<Table:Record Name="Misc" xmlns:Table="urn:mysite.com:EventData">
<Table:Field Name="Ident">321</Table:Field>
<Table:Field Name="Name">Name</Table:Field>
<Table:Field Name="Path">Path</Table:Field>
</Table:Record>
</MyData>
</Root>
With this XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:Table="urn:mysite.com:EventData">
<xsl:output method="html"/>
<xsl:param name="pNumCols" select="2"/>
<xsl:template match="/*">
<html>
<body>
<table>
<xsl:apply-templates select="Root/MyData/Table:Record[@Name='TmpTable'][position() mod $pNumCols = 1]"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Root/MyData/Table:Record[@Name='TmpTable']">
<tr>
<xsl:apply-templates mode="copy" select=". | following-sibling::*[not(position() >= $pNumCols)]"/>
</tr>
</xsl:template>
<xsl:template match="Root/MyData/Table:Record[@Name='TmpTable']" mode="copy">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
</xsl:stylesheet>
And I'm trying to get an output that looks like this, currently only focusing on the top section, not "details" yet:
<table border="1" cellpadding="4" cellspacing="1">
<tr>
<th>Field 1</th>
<td>Field 1 Value</td>
<th>Field 2</th>
<td>Field 2 Value</td>
</tr>
<tr>
<th>Field 3</th>
<td>Field 3 Value</td>
<th>Field 4</th>
<td>Field 4 Value</td>
</tr>
<tr>
<th>Details</th>
<td colspan="100%">
<table border="1" cellpadding="4" cellspacing="1">
<tr>
<th>TransField 1</th>
<th>TransField 2</th>
<th>TransField 3</th>
<th>TransField 4</th>
</tr>
<tr>
<td>Trans Field 1 Value</td>
<td>Trans Field 2 Value</td>
<td>Trans Field 3 Value</td>
<td>Trans Field 4 Value</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
Question: I'm following this post - xsl: transforming a list into a 2-D table but I'm having trouble selecting and matching my records.
Where am I going wrong? I believe I'm confined to XSLT 1.0
