계산을 위해 xsl 변수에서 노드 집합을 얻으려고합니다. 하지만 내 코드는 다른 브라우저와 함께 Opera에서만 작동합니다. 오류가 계속 발생합니다.xsl : variable은 XSLT 2.0에서 노드 집합을 반환하지 않습니다?
모든 브라우저에서 실행되도록 수정하십시오. 미리 감사드립니다.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="html"/>
<xsl:variable name="multipleSet">
<xsl:for-each select="myNums/numSet">
<xsl:element name="multiple"><xsl:value-of select="num1 * num2"/></xsl:element>
</xsl:for-each>
</xsl:variable>
<xsl:template match="/">
<table border="1">
<tr>
<th>Num 1</th>
<th>Num 2</th>
<th>Multiple</th>
</tr>
<xsl:for-each select="myNums/numSet">
<tr>
<td><xsl:value-of select="num1"/></td>
<td><xsl:value-of select="num2"/></td>
<td><xsl:value-of select="num1 * num2"/></td>
</tr>
</xsl:for-each>
<tr>
<th colspan="2" align="right">Total:</th>
<td><xsl:value-of select="sum($multipleSet/multiple)"/> </td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>
하고 XML :
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<myNums>
<numSet>
<num1>5</num1>
<num2>5</num2>
</numSet>
<numSet>
<num1>10</num1>
<num2>5</num2>
</numSet>
<numSet>
<num1>15</num1>
<num2>20</num2>
</numSet>
</myNums>
다른 브라우저에서 어떤 오류가 발생합니까? – Oded
IE : 변수 또는 매개 변수 'multipleSet'에 대한 참조가 노드 목록으로 평가되어야합니다. Firefox : XSLT 변환 중 오류 : XPath 표현식이 NodeSet을 반환해야합니다. 늦게 답변 해 주셔서 감사합니다. – Henry