Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
XML转换-在XML声明后删除换行符_Xml_Xslt - Fatal编程技术网

XML转换-在XML声明后删除换行符

XML转换-在XML声明后删除换行符,xml,xslt,Xml,Xslt,经过XML转换后,我得到以下结果: [..] 到目前为止,唯一有效的解决方案是不显示声明,但如果有其他选择,我宁愿不显示声明 我的XSL模板是这样开始的: [...] 谢谢您的帮助。对于解决方案,我省略了所用XML的名称空间 为此,我将只通过XPath1.0复制所有内容,并强制执行XML的上述副本,而不必缩进和格式化XSLT样式表 XML输入 XSLT1.0样式表 XML输出 我找到了一个解决方案,对我来说,它看起来更像是一个橡皮筋,而不是一个实际的修复程序,但它工作得很好,你觉

经过XML转换后,我得到以下结果:


[..]
到目前为止,唯一有效的解决方案是不显示声明,但如果有其他选择,我宁愿不显示声明

我的XSL模板是这样开始的:


[...]

谢谢您的帮助。

对于解决方案,我省略了所用XML的名称空间

为此,我将只通过XPath1.0复制所有内容,并强制执行XML的上述副本,而不必缩进和格式化XSLT样式表

XML输入

XSLT1.0样式表

XML输出
我找到了一个解决方案,对我来说,它看起来更像是一个橡皮筋,而不是一个实际的修复程序,但它工作得很好,你觉得它合法吗

我决定使用ommit声明,然后通过如下代码强制转换手动写入:


?xml version=“1.0”encoding=“UTF-8”?>
[...]

使用
@AmrendraKumar:这似乎取决于您使用的XSLT处理器。使用
xsltproc
(XSLT-1.0)时,它不起作用,而使用Saxon(XSLT-3.0)时,它可以按需要工作。所以这似乎是规范的边界情况。如果我明白你的意思,你是在使用第二个转换而不是第一个?(您在XML输入中输入的内容,是我目前从转换中获得的内容)原始XML与此无关,标记和体系结构在不同的体系结构中有不同的名称)这是一种不必要的攻击。您正在使用哪个XSLT处理器?--另请注意,空格应该是无关紧要的,XML声明是可选的——因此,如果必须这样做,真正的问题在于目标应用程序。在我这方面,在开发过程中,我只使用notepad++的XML工具,最终XML转换由BI Publisher(Oracle软件)处理。两者都遇到了相同的“问题”为我的需求。我不知道的BI出版商。使用Microsoft处理器,您将获得与此处相同的结果:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:[..]"><Tag1></Tag1><Tag2></Tag2></Document>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:output encoding="utf-8" indent="no" method="xml" omit-xml-declaration="no"/>
    <xsl:decimal-format name="decdot" decimal-separator="."/>

    <xsl:template match="/">
        <xsl:copy-of select="/"/>
    </xsl:template>

</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?><Document xmlns="urn:iso:std:[..]"><Tag1/><Tag2/></Document>