出于某种原因,我想从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。
我希望背景有所帮助。
由于 诺贝特
答案 0 :(得分:1)
XSLT专为XML到XML的转换而设计。如果要生成非XML,请使用其他技术。
实际上,您可以使用文本输出方法生成任意文本输出文件。但是您需要手动编写伪标签,例如
<xsl:text><openTag>....</openTag2></xsl:text>