通过XSLT解析嵌套标签

时间:2013-06-20 16:09:02

标签: java xml xslt xml-parsing xslt-2.0

我有一个像这样的XML文件 -

<item>
    <item>
        <tag>value</tag>
        <tag2>value</tag2>
    </item>
</item>

我想提取内部标记,使其看起来像这样 -

<item>
    <tag>value</tag>
    <tag2>value</tag2>
</item>

这可以通过XSLT实现吗?

外部<item></item>保证是XML文档的第一行和最后一行,如果有帮助的话。

2 个答案:

答案 0 :(得分:2)

如果你想提取叶子元素(那些没有自己子元素的元素),那么就像

那样简单
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/*">
    <xsl:copy>
      <xsl:copy-of select="descendant::*[not(*)]" />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

将完成这项工作。

答案 1 :(得分:1)

<xsl:template match="/">
  <xsl:copy-of select="//item[not(item)]"/>
</xsl:template>

提取那些不包含其他item元素的item元素。