Ik heb voor een stukje van mijn XSLT sheet, een aantal <xsl:if>'s nodig die bepalen of bepaalde attributen aan een <input> tag gehangen moeten worden. Een enkele <xsl:if> is geen enkel probleem, maar zodra ik er 2 of meer van maak, krijg ik errors. Ik zal eerst even de code copy/pasten:
genereert de error
(line 22 is de regel met <xsl:attribute name="onMouseClick"><xsl:text>javascript... etc)
Ik heb gezocht op de site van libxslt en het enige wat ik kon vinden is dat <xsl:attribute> niet meer gebruikt mag worden nadat er elementen aan de node zijn toegevoegd. Nou kan het aan mij liggen, maar dit kan toch niet het geval zijn?
Heeft iemand een idee waarom deze code in de soep loopt? Of dat dit een bug kan zijn van libxslt (heb hun bugzilla afgezocht, maar ook niks kunnen vinden)
Ik gebruik voor de conversie PHP5.0.3 met libxslt 1.1.12 (met libxml 2.6.16)
code:
1
2
3
4
5
6
7
8
9
10
| <input type="radio" name="answer[{../../@id}]" value="{@id}">
<xsl:if test="../@multi='true'">
<xsl:attribute name="type">checkbox</xsl:attribute>
<xsl:attribute name="name">answers[<xsl:value-of select="../../@id"/>][]</xsl:attribute>
</xsl:if>
<!-- Jump on selected -->
<xsl:if test="@skipto and @skiponpage='1'" xml:space="preserve">
<xsl:attribute name="onMouseClick"><xsl:text>javascript:document.location.href = document.location.href + "#" + </xsl:text><xsl:value-of select="@skipto"/>;</xsl:attribute>
</xsl:if>
</input> |
genereert de error
code:
1
2
3
| Warning: runtime error: file x.xsl line 22 element attribute in x.php on line 315 Warning: xsl:attribute : node already has children in x.php on line 315 |
(line 22 is de regel met <xsl:attribute name="onMouseClick"><xsl:text>javascript... etc)
Ik heb gezocht op de site van libxslt en het enige wat ik kon vinden is dat <xsl:attribute> niet meer gebruikt mag worden nadat er elementen aan de node zijn toegevoegd. Nou kan het aan mij liggen, maar dit kan toch niet het geval zijn?
Ik gebruik voor de conversie PHP5.0.3 met libxslt 1.1.12 (met libxml 2.6.16)