我正在使用 XSLT 生成超链接,并且在链接词的末尾不断出现额外的空格。
我的 XML 看起来像这样:
The last word needs to be a <url id="1">link</url>.
使用@id 连接链接。这是我的 XSLT:
<xsl:template match="//url">
<a href="../mainsite.html{@id}"><xsl:copy-of select="."/></a>
</xsl:template>
出于某种原因,这会在单词“link”上生成一个链接,但它会在其后添加一个空格,即使 url 标记之间没有空格。
如果我将 xsl:copy-of 切换为普通字符串,问题就会消失。例如:
<xsl:template match="//url">
<a href="../mainsite.html{@id}">string</a>
</xsl:template>
地球上额外的空间从哪里来?这让我很生气,因为任何后跟标点符号的链接看起来都很糟糕。我应该在哪里寻找以追踪问题?
非常感谢任何可以提供帮助的人。
最佳答案
问题是您正在使用:
<xsl:copy-of select="."/>
你应该在哪里使用:
<xsl:value-of select="."/>
由于您的样式表显然设置为缩进输出,您最终会得到:
The last word needs to be a <a href="../mainsite.html1">
<url id="1">link</url>
</a>
然后浏览器会忽略非 HTML 标签并将换行符呈现为空格。
关于xml - 额外的空间从何而来? (XSLT),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34822825/