复制包含xml属性的完整节点,不包括节点的第一个元素

时间:2012-09-06 04:24:02

标签: xslt-1.0

XSLT:我是XSLT的新手。我必须复制XML的完整节点,不包括该节点的第一个子节点。例如:输入

    <root id="123456789">
      <userid></userid>
      <fname></fname>
      <lname></lname>
      <age></age>
    </root>

    Output should be:
    <root id="123456789">
      <fname></fname>
      <lname></lname>
      <age></age>
    </root>

    Please suggest how to achieve this. Thanks in advance

1 个答案:

答案 0 :(得分:0)

此转化

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
  <xsl:copy>
   <xsl:apply-templates select="node()|@*"/>
  </xsl:copy>
 </xsl:template>

 <xsl:template match="/*/*[1]"/>
</xsl:stylesheet>

应用于提供的XML文档

<root id="123456789">
    <userid></userid>
    <fname></fname>
    <lname></lname>
    <age></age>
</root>

会产生想要的正确结果:

<root id="123456789">
      <fname/>
      <lname/>
      <age/>
</root>

<强>解释

正确使用和覆盖 identity rule

相关问题