xml – XSLT value()和position()给出不正确的索引
发布时间:2020-12-16 22:58:34 所属栏目:百科 来源:网络整理
导读:有人可以解释一下为什么我得到以下输出将下面的xsl文件应用于xml文件. ?xml version="1.0" encoding="ISO-8859-1"?source number1/number number2/number number3/number number4/number number5/number number6/number number7/number number8/number /sour
有人可以解释一下为什么我得到以下输出将下面的xsl文件应用于xml文件.
<?xml version="1.0" encoding="ISO-8859-1"?> <source> <number>1</number> <number>2</number> <number>3</number> <number>4</number> <number>5</number> <number>6</number> <number>7</number> <number>8</number> </source> ==================================== <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="number"> <p> <xsl:value-of select="position()"/> <xsl:text> of </xsl:text> <xsl:value-of select="last()"/> </p> </xsl:template> </xsl:stylesheet> ====================================== <p>2 of 17</p> <p>4 of 17</p> <p>6 of 17</p> <p>8 of 17</p> <p>10 of 17</p> <p>12 of 17</p> <p>14 of 17</p> <p>16 of 17</p> 我不太明白为什么输出不是8中的1,而是8中的2,依此类推. 解决方法
尝试添加条带空间,如下所示:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:strip-space elements="*"/> <xsl:template match="number"> <p> <xsl:value-of select="position()"/> <xsl:text> of </xsl:text> <xsl:value-of select="last()"/> </p> </xsl:template> </xsl:stylesheet> 这给出了以下输出: <p>1 of 8</p> <p>2 of 8</p> <p>3 of 8</p> <p>4 of 8</p> <p>5 of 8</p> <p>6 of 8</p> <p>7 of 8</p> <p>8 of 8</p> 这是由于空白问题,如此document中所述.基本上,节点集包含与模板不匹配的空白节点,但对每个节点的索引有贡献. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |