xslt 允许 concat 和标准化空间中的参数

发布于 2024-11-14 23:09:03 字数 357 浏览 1 评论 0 原文

我正在查看一些代码,我看到了这个:

<xsl:variable name="newlist" select="concat(normalize-space($list), ' ')" />

我只是想知道这个信息,我可以肯定地说 $list 是一个 stringnormalize-space($list ) 肯定会返回一个 string 并且行 concat(normalize-space($list), ' ') 肯定会返回一个 string (该字符串的最后一个字符是空格?)

I was looking through some code and i saw this:

<xsl:variable name="newlist" select="concat(normalize-space($list), ' ')" />

I'm just wondering with just this info, can i safely say for sure that $list is a string and normalize-space($list) will definitely return me a string and the line concat(normalize-space($list), ' ') will definitely return me a string (and the last character of that string is a space?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

◇流星雨 2024-11-21 23:09:03

$list 可以是字符串,数字,节点集,任何东西。结果将是一个字符串。是的,最后一个字符将是一个空格。

例如:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <xsl:variable name="node">
            <node>
                <subnode>string</subnode>
                <subnode>otherstring</subnode>
            </node>
        </xsl:variable>
    <xsl:variable name="string" select="concat($node,' ')"/>
    <xsl:value-of select="string-length($string)"/>
    <xsl:value-of select="substring-before($string,' ')"/>
    </xsl:template>

</xsl:stylesheet>

返回

18stringotherstring

$list could be a string, a number, a node set, anything. The result will be a string. And yes, the last character will be a space.

For instance:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <xsl:variable name="node">
            <node>
                <subnode>string</subnode>
                <subnode>otherstring</subnode>
            </node>
        </xsl:variable>
    <xsl:variable name="string" select="concat($node,' ')"/>
    <xsl:value-of select="string-length($string)"/>
    <xsl:value-of select="substring-before($string,' ')"/>
    </xsl:template>

</xsl:stylesheet>

returns

18stringotherstring
满身野味 2024-11-21 23:09:03

我认为您可以放心地假设这将返回一个字符串,但您不能确定 $list 是一个字符串,因为规范化空间将首先尝试转换为字符串。例如。

 <xsl:value-of select="concat(normalize-space(13), ' ')"/>

会工作的。

有关 concat标准化空间

另请注意,如果 $list 设置不正确,则可能会失败,例如,

<xsl:variable name="list" select="12 34" />

因此您永远不能真正安全地假设它会在没有看到其余代码的情况下工作。

I think you can safely assume this will return a string but you can't say for sure that $list is a string as normalize-space will attempt to convert to a string first. eg.

 <xsl:value-of select="concat(normalize-space(13), ' ')"/>

Will work.

More info on concat and normalize-space.

Also note that this could fail if $list is set incorrectly, such as

<xsl:variable name="list" select="12 34" />

So you can never really safely assume it will work without seeing the rest of the code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文