当前位置: 首页 > 知识库问答 >
问题:

如何从XSLT中的xml文件中删除额外的xml声明?

宗政英才
2023-03-14

我有一个带有声明的XML文件,需要使用XSLT将其删除,用于我使用的样式表版本=“2.0”

我拥有的xml文件(输入)

<?xml version="1.0" encoding="UTF-8"?>
<eExact>
<GLEntries>
    <GLEntry>
        <Description>Report 2020-08</Description>
        <Date>23-09-2020</Date>
        <DocumentDate>23-09-2020</DocumentDate>
        <Journal code="70"/>
        <FinEntryLine number="1">
            <GLAccount code="4590"/>
            <Creditor code="520094"/>
            <Description>Heidi Draaisma</Description>
            <Date>23-09-2020</Date>
            <Amount>
                <Currency code="EUR"/>
                <Debit>37.61</Debit>
            </Amount>
        </FinEntryLine>
    </GLEntry>
</GLEntries>
</eExact>

我需要的输出

<eExact>
<GLEntries>
    <GLEntry>
        <Description>Report 2020-08</Description>
        <Date>23-09-2020</Date>
        <DocumentDate>23-09-2020</DocumentDate>
        <Journal code="70"/>
        <FinEntryLine number="1">
            <GLAccount code="4590"/>
            <Creditor code="520094"/>
            <Description>Heidi Draaisma</Description>
            <Date>23-09-2020</Date>
            <Amount>
                <Currency code="EUR"/>
                <Debit>37.61</Debit>
            </Amount>
        </FinEntryLine>
    </GLEntry>
</GLEntries>
</eExact>

共有1个答案

华锦
2023-03-14

我有一个带有声明的XML文件,需要使用样式表版本=“2.0”的XSLT将其删除

这是您想要的转换:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes"/>

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

说明:

>

  • <代码>

    身份规则/模板

  •  类似资料:
    • 问题内容: 我需要有关从UTF-8文件删除BOM并创建其余xml文件的副本的方法的建议。 问题答案: 有因为在UTF-8文件中的BOM的工具断裂是一个 非常 以我的经验平常的事。我不知道为什么会有这么多的否决票(但是这给了我机会去尝试赢得足够的选票来赢得特殊的SO徽章;) 更严重的是:UTF-8 BOM通常没有太大意义, 但 在规格上完全有效(尽管不建议使用)。现在的问题是,很多人不知道BOM在U

    • 问题内容: 给出如下结果 但是我需要从输出中删除xml声明,我该怎么做 问题答案: 您是否看到了Transformer使用的OutputKeys?特别是OMIT_XML_DECLARATION。 请注意,删除标头在XML 1.0中有效,但是会丢失字符编码数据(尤其如此),这可能非常重要。

    • 问题内容: 简而言之; 我在XML文件中生成了许多空行,并且我正在寻找一种删除它们的方法,以作为倾斜文件的一种方法。我怎样才能做到这一点 ? 详细说明;我目前有这个XML文件: 我使用此Java代码删除所有标签,并添加新标签: 在多次执行此方法后,我得到了一个XML文件,其结果正确,但是在“ paths”标记之后和第一个“ path”标记之前有许多空行,如下所示: 有人知道该如何解决吗? ----

    • 简言之我在XML文件中生成了许多空行,我正在寻找一种方法来删除它们,作为学习文件的一种方式。我该怎么做? 详细说明;我当前有以下XML文件: 我使用此Java代码删除所有标记,并添加新标记: 多次执行此方法后,我得到了一个结果正确的XML文件,但在“paths”标记之后和第一个“path”标记之前有许多空行,如下所示: 有人知道怎么解决吗? ----------------------------

    • 问题内容: 我已经从Excel数据库中生成了一个xml文件,它自动包含一个名为“ ” 的元素。为了使新文件符合我的需求,我想使用java删除此元素。这是xml内容: 我编写了一个代码来读取(使用缓冲的读取器)并将内容写入新文件中,并在以下情况下使用该条件: 但这不起作用 问题答案: 我个人建议使用适当的XML解析器(如Java DOM)来检查和删除您的节点,而不是将XML作为原始对象处理(糟糕)。

    • 我尝试了下面的XSLT,但我不知道如何删除,xml version=“1.0”encoding=“UTF-8”?>。请帮忙