从XSL转换中提供无效的XML

时间:2018-03-07 17:27:44

标签: xml xslt

出于某种原因,我想从XSL转换中输出一些无效或至少部分有效的XML。

例如,我想打印出来

<openTag attribute="yes"> <openTag2>

没有来自模板的任何结束标记。

我试过了:

<xsl:template match="//MyElement">

    <xsl:text disable-output-escaping="yes">
     <xsl:value-of select=<book xmlns="<openTag attribute="yes"> <openTag2>"/>
    </xsl:text>

    <xsl:apply-templates select="node()"/>

</xsl:template>

但是,这会导致select语句不能包含“&lt;”的错误。

已经很晚了,也许我看不到森林里的树木了。谁能给我一个tipp?

编辑:

问题的背景是我有一个名为source.xml的XML文件。这包含元素:

<MyElement>Text</MyElement>

我想进行XSL转换,将其转换为另一个名为target.xml的XML文件,内容为

<openTag attribute="Text"> <openTag2>

然后将进一步处理该文档以添加结束元素。因此,这里没有关闭元素的事实并不重要。生成的文件target.xml不必是有效的XML。

我希望背景有所帮助。

由于 诺贝特

1 个答案:

答案 0 :(得分:1)

XSLT专为XML到XML的转换而设计。如果要生成非XML,请使用其他技术。

实际上,您可以使用文本输出方法生成任意文本输出文件。但是您需要手动编写伪标签,例如

<xsl:text>&lt;openTag&gt;....&lt;/openTag2&gt;</xsl:text>