有没有一种简单的方法来表示 xsl 样式表中的引号?

Posted

技术标签:

【中文标题】有没有一种简单的方法来表示 xsl 样式表中的引号?【英文标题】:Is there a simple way to represent quotation marks in a xsl-stylesheet? 【发布时间】: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 是一个示例输入

【问题讨论】:

【参考方案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 开头,则可能会导致问题

以上是关于有没有一种简单的方法来表示 xsl 样式表中的引号?的主要内容,如果未能解决你的问题,请参考以下文章

将所有属性集收集到一个样式表中并包含在 principal.xsl

我需要一个简单的命令行程序来使用 XSL 样式表转换 XML [关闭]

Java+XSL合并多个XML文件

从使用 XSL 生成的 HTML 中删除空格

XSLT:将样式表包含在主样式表中

20JSON