Forum Moderators: open
XML ELEMENT
<Hatecrimes>
<HatecrimeIncident IncidentNr="1" IncidentType="D">
<CellData Key="f9r1c1">1hc</CellData>
<CellData Key="f9r1c3">2</CellData>
<CellData Key="f9r1c4">1</CellData>
<CellData Key="f9r1c5">1</CellData>
<Offender ChildNr="1">
<CellData Key="f9r1offender2c6">27</CellData>
<CellData Key="f9r1offender2c7">M</CellData>
</Offender>
<Offense ChildNr="2">
<CellData Key="f9r1offense1c10">1</CellData>
<CellData Key="f9r1offense1c6">03</CellData>
<CellData Key="f9r1offense1c7">1</CellData>
<CellData Key="f9r1offense1c8">01</CellData>
<CellData Key="f9r1offense1c9">12</CellData>
</Offense>
</HatecrimeIncident>
</Hatecrimes>
XSL
<xsl:choose>
<xsl:when test="count(Hatecrimes/HatecrimeIncident) > -1">
<xsl:element name="script">
function buildHatecrimeTables()
{
<xsl:for-each select="Hatecrimes/HatecrimeIncident">
<xsl:variable name="incNr"><xsl:value-of select="position()"/></xsl:variable>
<xsl:variable name="prefix">f9r<xsl:value-of select="$incNr"/></xsl:variable>
showHatecrimeIncident('<xsl:value-of select="CellData[@Key=concat($prefix,'c1')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'c2')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'c3')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'c4')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'c5')]"/>');
<xsl:for-each select="Offense">
<xsl:sort data-type="number" order="ascending" select="@ChildNr"/>
showOffense(<xsl:value-of select="$incNr"/>,'<xsl:value-of select="CellData[@Key=concat($prefix,'offense',position(),'c6')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'offense',position(),'c7')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'offense',position(),'c8')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'offense',position(),'c9')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'offense',position(),'c10')]"/>');
testOffense(<xsl:value-of select="$incNr"/>,'<xsl:value-of select="concat($prefix,'offense',position(),'c6')"/>','<xsl:value-of select="concat($prefix,'offense',position(),'c7')"/>','<xsl:value-of select="concat($prefix,'offense',position(),'c8')"/>','<xsl:value-of select="concat($prefix,'offense',position(),'c9')"/>','<xsl:value-of select="concat($prefix,'offense',position(),'c10')"/>');
</xsl:for-each>
<xsl:for-each select="Offender">
<xsl:sort data-type="number" order="ascending" select="@ChildNr"/>
showOffender(<xsl:value-of select="$incNr"/>,'<xsl:value-of select="CellData[@Key=(concat($prefix,'offender',position(),'c6'))]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'offender',position(),'c7')]"/>');
testOffender(<xsl:value-of select="$incNr"/>,'<xsl:value-of select="concat($prefix,'offender',position(),'c6')"/>','<xsl:value-of select="concat($prefix,'offender',position(),'c7')"/>');
</xsl:for-each>
<xsl:for-each select="Victim">
<xsl:sort data-type="number" order="ascending" select="@ChildNr"/>
showVictim(<xsl:value-of select="$incNr"/>,'<xsl:value-of select="CellData[@Key=concat($prefix,'victim',position(),'c6')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'victim',position(),'c7')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'victim',position(),'c8')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'victim',position(),'c9')]"/>','<xsl:value-of select="CellData[@Key=concat($prefix,'victim',position(),'c10')]"/>');
testVictim(<xsl:value-of select="$incNr"/>,'<xsl:value-of select="concat($prefix,'victim',position(),'c6')"/>','<xsl:value-of select="concat($prefix,'victim',position(),'c7')"/>','<xsl:value-of select="concat($prefix,'victim',position(),'c8')"/>','<xsl:value-of select="concat($prefix,'victim',position(),'c9')"/>','<xsl:value-of select="concat($prefix,'victim',position(),'c10')"/>');
</xsl:for-each>
</xsl:for-each>
}
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="script">
function buildHatecrimeTables(){return;}
</xsl:element>
</xsl:otherwise>
</xsl:choose>
JAVASCRIPT THAT I GET FROM THE ABOVE XML & XSL
function buildHatecrimeTables()
{
showHatecrimeIncident('1hc','','2','1','1');
showOffense(1,'','','','','1');
testOffense(1,'f9r1offense1c6','f9r1offense1c7','f9r1offense1c8','f9r1offense1c9','f9r1offense1c10');
showOffender(1,'','M');
testOffender(1,'f9r1offender1c6','f9r1offender1c7');
}
JAVASCRIPT THAT I THINK I SHOULD GET
function buildHatecrimeTables()
{
showHatecrimeIncident('1hc','','2','1','1');
showOffense(1,'03','1','01','12','1');
testOffense(1,'f9r1offense1c6','f9r1offense1c7','f9r1offense1c8','f9r1offense1c9','f9r1offense1c10');
showOffender(1,'27','M');
testOffender(1,'f9r1offender1c6','f9r1offender1c7');
}
btw - the testOffense, testOffender, and testVictim functions are just to make sure the concatenation was working as expected.
Does anyone know why the javascript that results in snippet 3 is not picking up all of the cellData elements?
Thanks.