首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML转换-删除xml声明后的换行符

XML转换-删除xml声明后的换行符
EN

Stack Overflow用户
提问于 2019-01-21 23:32:46
回答 2查看 413关注 0票数 2

在XML转换之后,我得到了以下结果:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:[..]><Tag1></tag1><Tag2></Tag2>[..]</Document>

我需要输出文件在一行上,如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:[..]><Tag1></tag1><Tag2></Tag2>[..]</Document>

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

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

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
                xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                [...]
                xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:ora="http://schemas.oracle.com/xpath/extension">

  <xsl:decimal-format name="decdot" decimal-separator="."/>
  <xsl:output method="xml" version="1.0" encoding="UTF-8"/>
  <xsl:template match="/">
    <Document>
      [...]
    </Document>
  </xsl:template>
</xsl:stylesheet>

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-22 16:51:13

我找到了一个解决方案,看起来更像是橡皮胶带,而不是实际的修复,但它工作得很好,这对你来说是合法的吗?

我决定省略声明,然后强制转换通过如下代码手动写下它:

代码语言:javascript
复制
<xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes"/>
  <xsl:template match="/">
    <xsl:text disable-output-escaping="yes">&lt;?xml version="1.0" encoding="UTF-8"?></xsl:text>
    <Document>
      [...]
    </Document>
  </template>
票数 0
EN

Stack Overflow用户

发布于 2019-01-22 00:58:06

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

为此,我只需通过XSLT1.0复制所有内容,并强制执行上述XPath副本,而无需缩进和格式化XSLT样式表。

XML输入

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:[..]"><Tag1></Tag1><Tag2></Tag2></Document>

XSLT 1.0样式表

代码语言:javascript
复制
<?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输出

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?><Document xmlns="urn:iso:std:[..]"><Tag1/><Tag2/></Document>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54293151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档