有没有一种简单的方法来表示 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” 还有一种更简单的方法。你也可以简单地做<xmlelement attribute="INPUT" />
。花括号被称为“属性值模板”,表示应该计算内部的表达式而不是按字面输出。
谢谢@TimC 我不知道这些。我会将其添加到答案中。
请注意,如果您的元素名称以 XML 开头,则可能会导致问题以上是关于有没有一种简单的方法来表示 xsl 样式表中的引号?的主要内容,如果未能解决你的问题,请参考以下文章
将所有属性集收集到一个样式表中并包含在 principal.xsl