将变化的xml转换为另一个xml

时间:2014-08-24 11:35:26

标签: java xml xslt-2.0

我有一个输入XML文件,如下所示:

<Root>
 <Monday>Monday<Monday>
 <Indicator>true<Indicator>
 <Value>1<Value>
 <Tuesday>Tuesday<Tuesday>
 <Indicator>true<Indicator>
 <Value>2<Value>
 <Wednesday>Wednesday<Wednesday>
 <Indicator>true<Indicator>
 <Value>3<Value>
</Root>

必须将其转换为输出XML文件:

<Root>
 <Monday>Monday<Monday>
 <Value>1<Value>
 <Tuesday>Tuesday<Tuesday>
 <Value>2<Value>
 <Wednesday>Wednesday<Wednesday>
 <Value>3<Value>
</Root>

问题是输入XML可能会有所不同。有时它可能是

<Root>
 <Monday>Monday<Monday>
 <Indicator>true<Indicator>
 <Value>1<Value>
 <Thursday>Thursday<Thursday>
 <Indicator>true<Indicator>
 <Value>4<Value>
</Root>

现在输出必须是

<Root>
 <Monday>Monday<Monday>
 <Value>1<Value>
 <Thursday>Thursday<Thursday>
 <Value>4<Value>
</Root>

我还有周一,周二等有效标签的列表,这些标签可以在Java的ArrayList中输入XML。关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:1)

从这个回答:How to remove elements from xml using xslt with stylesheet and xsltproc?

<xsl:stylesheet version="1.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:template match="Indicator"/>
</xsl:stylesheet>