Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XSLT:向根元素添加名称空间声明_Xslt_Xslt 1.0 - Fatal编程技术网

XSLT:向根元素添加名称空间声明

XSLT:向根元素添加名称空间声明,xslt,xslt-1.0,Xslt,Xslt 1.0,我有这个XML文档: <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> <DirectoryRef Id="AcquisitionFolder"> <Directory Id="dir2EE87E668A6861A2C8B65282141

我有这个XML文档:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <DirectoryRef Id="AcquisitionFolder">
            <Directory Id="dir2EE87E668A6861A2C8B6528214144568" Name="bin" />
            <Directory Id="dir99C9EB95694B90A2CD31AD7E2F4BF7F6" Name="Decoders" />
        </DirectoryRef>
    </Fragment>
</Wix>

我希望得到以下结果:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension>
    <Fragment>
        <DirectoryRef Id="AcquisitionFolder">
            <Directory Id="dir2EE87E668A6861A2C8B6528214144568" Name="bin" />
            <Directory Id="dir99C9EB95694B90A2CD31AD7E2F4BF7F6" Name="Decoders" />
        </DirectoryRef>
    </Fragment>
</Wix>


在许多情况下,您可以简单地将名称空间作为以下内容的一部分嵌入到投影的Xml元素(包括根)中:


更正式/更一般地说,输出xml中的任何名称空间都可以添加到中(可以全局添加,也可以使用名称空间别名),例如


。。。然后在输出中引用

<xsl:template match="/">
    <wix:Wix>
       <wix:Child>
          ...

...

如果结果输出中仍有不需要的/未使用的名称空间(例如,源文档中需要,但输出文档中不需要),您可以将这些名称空间清除掉,我感到非常羞愧。为什么我没有想到这么简单的解决办法?谢谢你的帮助!!!
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:wix="http://www.foo.com/2001/v1"
    ...other namespaces here>
<xsl:template match="/">
    <wix:Wix>
       <wix:Child>
          ...