我必须从不同的源回传信息,并且可以具有在之间的变换,但是根据如果源文档具有XML处理指令,我要传给它,如果它不,我不应该将它传递

Input
<?xml version="1.0" encoding="UTF-8"?>
<Source/>

Output    
<?xml version="1.0" encoding="UTF-8"?>
<Source/>

如果它没有处理指令,我不应该包括它的输出,主要是为了支持其他一些旧的程序,不明白他们(废话!)

我可以动态切换样式表和使用基于当输入有指示所述省略的XML声明,但没有一种方法能做到这一点在一个样式表?

编辑:我不能删除正在返回的数据之前存在的转化

编辑:我刚才读的,即使它看起来像一个处理指令,该<?xml version.. ?>,事实上它是没有,所以不知道这是否是可能的匹配就可以了,有什么建议

有帮助吗?

解决方案

XML声明看起来像一个处理指令,但它不是

它存在通知XML解析器有关,它是将要读出的文件(XML版本,字符编码)。

它不会在所得的DOM /信息集存在,因此它不能在XSLT匹配。

此外,不能动态改变<xsl:output>指示,例如在一个或<xsl:if>构建<xsl:choose>de不会工作不同的输出元件的东西。

我的建议是:如果下游应用的一部分,不明白XML声明(这是一个<击> WTF 事实真的让我抓我的头),然后用离开他们了所有的时间:

<xsl:output omit-xml-declaration="yes" />
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top