【问题标题】:how to delimit double quotes in xslt如何在xslt中分隔双引号
【发布时间】:2013-06-19 14:07:54
【问题描述】:

以下会产生 xslt 编译错误:

<asp:hiddenfield runat="server" value="<xsl:value-of select="string[position()=2]"/>"  id="<xsl:value-of select="$ActionID"/>"></hiddenfield>

我怎样才能正确地让这个语句起作用?我尝试了以下方法,但均未成功: . . . ' " . . . " id="" />

<asp:hiddenfield runat="server" value="<xsl:value-of    select=&quot;string[position()=2]&quot;/>" id="<xsl:value-of select=&quot;$ActionID&quot;/>"></hiddenfield>

<asp:hiddenfield runat="server" value="<xsl:value-of select='string[position()=2]'/>" id="<xsl:value-of select='$ActionID'/>"></hiddenfield>

<asp:hiddenfield runat="server" value=&quot;<xsl:value-of select="string[position()=2]"/>&quot; id=&quot;<xsl:value-of select="$ActionID"/>&quot;></hiddenfield>

使用 concat、"、' 等的许多其他不成功的尝试。我哪里错了?非常感谢所有提前回复。

【问题讨论】:

    标签: xslt quotes


    【解决方案1】:

    您需要在这里使用属性值模板!

    试试这个代码

    <asp:hiddenfield runat="server" value="{string[position()=2]}"  id="{$ActionID}"></asp:hiddenfield>
    

    当您在属性中使用花括号时,这表明它是要计算的表达式,而不是字面输出。

    这是另一种方法。

    <asp:hiddenfield runat="server">
       <xsl:attribute name="value">
           <xsl:value-of select="string[position()=2]"/>
       </xsl:attribute>
       <xsl:attribute name="id">
           <xsl:value-of select="$ActionID"/>
       </xsl:attribute>
    

    但是,如您所见,这更加冗长。如果您想要动态属性名称,或者如果您只想在某些条件下输出属性,则只需要使用 xsl:attribute

    【讨论】:

    • 非常感谢您为我澄清。我们遇到了一些网络问题,所以我无法测试您的建议,但对我来说似乎是合理的。一百万个祝福给你。谢谢。
    • 我们终于让一切恢复正常运行,我已经尝试了您列出的两种解决方案,但我仍然收到 XSLT 编译错误。当我仅注释掉该部分时,一切正常。在这种情况下必须有更多内容......
    • 您确定更改了所有出现的属性吗?另外,也许您可​​以修改您的问题以显示您收到的确切错误消息?谢谢!
    • 你好,我实际上把所有出现的地方都注释掉了,除了一个,这样我就可以测试它了。这两个建议都不起作用,但我注意到替代建议中缺少 标记。当我输入结束标签时,瞧!一切都很完美!为像你这样的人感谢上帝!你太棒了!我不确定为什么第一个建议不起作用,但我仔细检查并确保所有内容都正确输入,没有拼写错误。
    猜你喜欢
    • 2016-01-23
    • 2017-07-09
    • 2015-08-01
    • 2021-11-30
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多