用XSLT转换XML— ;如何完全删除标签?

用XSLT转换XML— ;如何完全删除标签?,xml,xslt,Xml,Xslt,现在,我正在使用XSLT&需要帮助。我有一个XML文件: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <entries> <entry> <field>1</field> </entry> <entry> <field>2</field> </entry&

现在,我正在使用XSLT&需要帮助。我有一个XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<entries>
    <entry>
        <field>1</field>
    </entry>
    <entry>
        <field>2</field>
    </entry>
    <entry>
        <field>3</field>
    </entry>
    <entry>
        <field>4</field>
    </entry>
    <entry>
        <field>5</field>
    </entry>
</entries>

1.
2.
3.
4.
5.
我需要格式化此XML以重新发送:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<entries>
    <entry field="1">
    <entry field="2">
    <entry field="3">
    <entry field="4">
    <entry field="5">
</entries>
<?xml version="1.0" encoding="UTF-8" standalone="no"?><entries>

        <entry field="1">


        <entry field="2">


        <entry field="3">


        <entry field="4">


        <entry field="5">

</entries>

但我重新录制了这个:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<entries>
    <entry field="1">
    <entry field="2">
    <entry field="3">
    <entry field="4">
    <entry field="5">
</entries>
<?xml version="1.0" encoding="UTF-8" standalone="no"?><entries>

        <entry field="1">


        <entry field="2">


        <entry field="3">


        <entry field="4">


        <entry field="5">

</entries>

XSLT文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
    <xsl:output method="xml" indent="no" encoding="UTF-8" standalone="no"/>
    <xsl:template match="entries">
        <entries>
            <xsl:apply-templates/>
        </entries>
    </xsl:template>
    <xsl:template match="entry">
            <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="field">
        <xsl:text disable-output-escaping="yes">&lt;entry field="</xsl:text><xsl:apply-templates/><xsl:text disable-output-escaping="yes">"&gt;</xsl:text>
    </xsl:template>
</xsl:stylesheet>

输入字段=“”

正如我们所看到的,
XSLT样式表
只是删除标记,而不删除它们,留下空间。如何完全删除标记并将第一个标记移动到下一行?否则,如何将XML转换为所需的格式?

如果您确实必须输出格式错误的XML(即根本不是XML文档),那么我建议您使用
文本作为输出方法,并自行设置缩进格式:

XSLT1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>

<xsl:template match="entries">
    <xsl:text>&lt;entries></xsl:text>
        <xsl:apply-templates/>
    <xsl:text>&#10;&lt;/entries></xsl:text>
</xsl:template>

<xsl:template match="entry">
    <xsl:text>&#10;    &lt;entry field="</xsl:text>
    <xsl:value-of select="field"/>
    <xsl:text>"></xsl:text>
</xsl:template>

</xsl:stylesheet>

参赛作品>

/参赛作品>

    输入字段=”
">

看起来不错,但是如何删除斜杠:&如何在标记前保存缩进?@bчbчbаbаbаbаbаbаbаbаbаbаbаbаb1072?这样做的目的是什么?很不幸,这是一项技术任务。可能吗?不可能保留标记前的缩进,同时也不可能保留仅在同一空格节点中的换行符。但是您可以插入自己的缩进。请告诉我如何使用您的一个示例在文档中插入自己的空格和缩进。当XML声明显然不是XML时,为什么要在输出中插入XML声明?你想迷惑谁?