gpt4 book ai didi

xslt - Symphony CMS中奇怪的XSL输出

转载 作者:行者123 更新时间:2023-12-03 17:00:30 28 4
gpt4 key购买 nike

我在Symphony CMS中试图返回这样的文章图像。

<img src="{$workspace}/uploads/{/data/news-articles/entry/image-thumbnail}"/>


输出看起来像这样

<img src="/workspace/uploads/%0A%09%09%09%09penuts_thumb.png%0A%09%09%09%09%0A%09%09%09">


如果我只是尝试返回节点值

<xsl:value-of select="image-thumbnail" />


输出看起来正确

penuts_thumb.png


关于我为什么要获得所有多余字符的想法?

最佳答案

Output looks correct


不,它只是“看起来正确”,因为浏览器会忽略空格字符。

发生的情况是字符串 "penuts_thumb.png"被空白包围。当将此空白序列化为 src属性值的一部分时,将对其进行编码(规范化)-这就是为什么您看到 %0A(换行符的代码)和 %09(制表符的代码)的原因。

此转换有助于准确查看每种情况下生成的内容:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:variable name="workspace" select="'/workspace'"/>


<xsl:template match="/">
<img src="{$workspace}/uploads/{/data/news-articles/entry/image-thumbnail}"/>
===========
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="entry">
"<xsl:value-of select="image-thumbnail"/>"
</xsl:template>
</xsl:stylesheet>


应用于此XML文档时:

<data>
<news-articles>
<entry>
<image-thumbnail>
penuts_thumb.png
</image-thumbnail>
</entry>
</news-articles>
</data>


产生以下输出:

<img src="/workspace/uploads/%0A                     penuts_thumb.png%0A    ">
===========



"
penuts_thumb.png
"


正如我们所看到的(由于引号),字符串 "penuts_thumb.png"也被许多空白字符包围。

解:

通过以下方式使用 normalize-space()函数:

<img src=
"{$workspace}/uploads/{normalize-space(/data/news-articles/entry/image-thumbnail)}"/>

关于xslt - Symphony CMS中奇怪的XSL输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8681885/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com