有人可以解释一下为什么我得到以下输出,将以下 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>
Run Code Online (Sandbox Code Playgroud)
====================================
<?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>
Run Code Online (Sandbox Code Playgroud)
======================================
<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>
Run Code Online (Sandbox Code Playgroud)
我不太明白为什么输出不是 1 of 8、2 of 8 等等。
尝试添加条带空间,如下所示:
<?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>
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出:
<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>
Run Code Online (Sandbox Code Playgroud)
这是由于空格问题造成的,如本文档中所述。基本上,节点集包含与模板不匹配的空白节点,但对每个节点的索引有贡献。
| 归档时间: |
|
| 查看次数: |
961 次 |
| 最近记录: |