是否有可能包含/排除基于其在源文件中存在的XML处理指令?
-
21-09-2019 - |
题
我必须从不同的源回传信息,并且可以具有在之间的变换,但是根据如果源文档具有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" />
不隶属于 StackOverflow