【问题标题】:Convert varying xml to another xml将不同的 xml 转换为另一个 xml
【发布时间】:2014-08-24 11:35:25
【问题描述】:

我有一个如下所示的输入 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 中出现。关于如何实现这一点的任何想法?

【问题讨论】:

  • 问题不清楚。你从哪里得到输入?你想在哪里输出?据我所知,您唯一要做的就是要删除 Indicator 标签
  • 日期、指标、值的顺序是固定的吗?另外,你自己尝试过什么吗?如果不是,为什么不呢?如果是,请展示您的尝试。

标签: java xml xslt-2.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>

【讨论】:

  • 如果您说这个问题是重复的,请投票关闭而不是复制另一个答案。
  • @Raedwald:这不是完全重复的。从原文中找到我的答案是否简单,是OP的XSLT知识问题。
  • 这个问题是微不足道的,答案也是如此,这个答案说明了所有需要说的。
猜你喜欢
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多