经过XML转换后,我得到以下结果:
rollbackFor=SQLException.class
我需要将输出文件放在一行上, 类似于以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:[..]><Tag1></tag1><Tag2></Tag2>[..]</Document>
到目前为止,唯一可行的解决方案是不显示声明,但如果有其他选择,我宁愿不这样做。
我的XSL模板开始是这样的:
<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:[..]><Tag1></tag1><Tag2></Tag2>[..]</Document>
感谢您的帮助。
答案 0 :(得分:0)
对于该解决方案,我省略了所用XML的名称空间。
为此,我将仅通过XPath 1.0复制所有内容,并强制XML的所述副本,而无需缩进和格式化XSLT样式表。
<?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>
答案 1 :(得分:0)
我找到了一种解决方案,看起来比橡皮筋更像实际解决方案,但是效果很好,对您来说合法吗?
我决定省略声明,然后通过如下代码强制转换手动将其写下:
<xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes"><?xml version="1.0" encoding="UTF-8"?></xsl:text>
<Document>
[...]
</Document>
</template>