Java 使用xsl转换创建文档时忽略无效的xml

Java 使用xsl转换创建文档时忽略无效的xml,java,xml,xslt,crx,Java,Xml,Xslt,Crx,有一个java工具使用几个xsl转换将数据从crx转换为esi xml标记 esi标记通常是无效的xml,因为esi通常是不总是具有相同的开始和结束标记的小逻辑片段。 例: java xsl引擎当前不允许生成无效的xml。因此,我们必须将所有esi输出包装在虚拟标记中,但这会导致几个问题 所以我想知道是否有一种方法允许JavaXSL转换引擎生成无效或格式不正确的标记 谢谢。将输出模式设置为文本,而不是默认的xml。现在,您可以生成任何类型的文本,即使它看起来很像XML,但您必须确保在正确的位置正

有一个java工具使用几个xsl转换将数据从crx转换为esi xml标记

esi标记通常是无效的xml,因为esi通常是不总是具有相同的开始和结束标记的小逻辑片段。 例:

java xsl引擎当前不允许生成无效的xml。因此,我们必须将所有esi输出包装在虚拟标记中,但这会导致几个问题

所以我想知道是否有一种方法允许JavaXSL转换引擎生成无效或格式不正确的标记

谢谢。

将输出模式设置为文本,而不是默认的xml。现在,您可以生成任何类型的文本,即使它看起来很像XML,但您必须确保在正确的位置正确转义字符,如等

还有一些东西,比如xsl:element,由于明显的原因将不再有效


也许用真正的编程/脚本语言编写这样的东西比用XSL编写更好。

如果可以更改XSL转换,可以使用:

<xsl:output method="text">

任何需要使用更多XSL转换的中间输出都必须是有效的XML,因为XSL只对XML有效,但我非常确定最终输出可以是任何内容。您使用的是哪种Java XSL引擎?请注意,这不是格式良好的XML,而是有效的SGML,然后您可以使用@Aaron Digulla:与XSL相比,真正的编程/脚本语言的含义是什么?XSL是一种非常专门的类似脚本的语言,它有很多限制,您需要在表上显示您的代码以减轻痛苦可忍受:-这就是为什么你通常最好使用像Python这样的通用脚本语言。@Aaron Digulla:我想你应该说XSLT是一种具有专门执行上下文的高级声明性语言。@Alejandro:我想说的是,XSLT对于95%的开发人员来说太复杂,对于任何事情来说都太有限但是简单的过滤元件有问题。@Aaron Digulla:你有权对此事发表任何意见。但我觉得你的形容词太多了。谢谢Stephan的回答,但我想知道是否有一种方法可以在生成文档时关闭xml验证,而不必将方法更改为文本。@Arya完全没有!如果输出方法是XML,则生成代码必须是有效的XML:闭合标记、带引号的属性等。抱歉:\
<xsl:output method="text">