我正在使用 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/

10-11 17:24