使用xslt删除XML节点

时间:2019-04-17 08:55:11

标签: xml xslt

我正在尝试使用XSLT从我的XML文件中删除我的“ id”节点之一。但没有给出预期的输出。请为此指导我以达到相同目的。 我尝试了一些可能的方法,但对我不起作用。找不到失踪的地方。

示例代码

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:strip-space elements="*"/>
<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>
<xsl:template match="id"/>
</xsl:stylesheet>

输入XML:

<TheXml
    xmlns="http://test.org/test">
    <ThePhrases>
        <Phrase>
            <PhraseCode>test</PhraseCode>
            <PhraseData File="text.xml" QC="1">
                <Amount>$113,110.00</Amount>
                <id value="sdsds" />
            </PhraseData>
        </Phrase>
    </ThePhrases>
    <ThePhrases>
        <Phrase>
            <PhraseCode>test</PhraseCode>
            <PhraseData File="text.xml" QC="1">
                <Amount>$113,110.00</Amount>
                <id value="Test2" />
            </PhraseData>
        </Phrase>
    </ThePhrases>
</TheXml>

预期输出:

<TheXml
    xmlns="http://test.org/test">
    <ThePhrases>
        <Phrase>
            <PhraseCode>test</PhraseCode>
            <PhraseData File="text.xml" QC="1">
                <Amount>$113,110.00</Amount>
            </PhraseData>
        </Phrase>
    </ThePhrases>
    <ThePhrases>
        <Phrase>
            <PhraseCode>test</PhraseCode>
            <PhraseData File="text.xml" QC="1">
                <Amount>$113,110.00</Amount>
            </PhraseData>
        </Phrase>
    </ThePhrases>
</TheXml>

0 个答案:

没有答案