【问题标题】:Is there a simple way to represent quotation marks in a xsl-stylesheet?有没有一种简单的方法来表示 xsl 样式表中的引号?
【发布时间】:2019-06-30 11:15:12
【问题描述】:

我想输出一个 XML 文件。在这个 XML 文件中,有一个带有引号内的属性内容的标签。我必须如何更改 XSL 样式表才能完成此操作?

我在这里没有找到解决此问题的任何其他条目。 如何在 xsl:value-of 前后创建引号?

<xsl:for-each select="INPUTDOC/STRUCTURE">
    <xmlelement attribute="<xsl:value-of select="INPUT"/>"/>
</xsl:for-each>

XML 输出应如下所示(对于每个结构元素)

<xmlelement attribute="123456"/>

123456 是一个示例输入

【问题讨论】:

    标签: xml xslt utf-8 quotation-marks


    【解决方案1】:

    这不是你将如何使用 value-of 或如何使用 xslt 在元素上定义属性的方式。请尝试以下操作:

    <xsl:for-each select="INPUTDOC/STRUCTURE">
        <xmlelement>
           <xsl:attribute name="[attributename]">
               <xsl:value-of select="INPUT"/>
           </xsl:attribute>
        </xmlelement>
    </xsl:for-each>
    

    另一个可能更简单的选择是使用属性值模板,正如 Tim C 在 cmets 中提到的那样。这样您的代码将如下所示:

    <xsl:for-each select="INPUTDOC/STRUCTURE">
        <xmlelement attribute="{INTPUT}"/>
    </xsl:for-each>
    

    【讨论】:

    • 谢谢,我是 XSLT 的新手,所以我不知道“xsl:attribute”
    • 还有一种更简单的方法。你也可以简单地做&lt;xmlelement attribute="{INPUT}" /&gt;。花括号被称为“属性值模板”,表示应该计算内部的表达式而不是按字面输出。
    • 谢谢@TimC 我不知道这些。我会将其添加到答案中。
    • 请注意,如果您的元素名称以 XML 开头,则可能会导致问题
    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多