首页 > 解决方案 > 如果子节点与使用 xslt 2.0 的其他父节点的子节点重复,则完全删除父节点

问题描述

输入 xml-父节点块重复出现三次。我需要完全删除重复的节点,即使它在同一个 xml 中出现超过 7 次而不创建新的 xml

<Blocks>
  <Block>
     <Name>Table</Name>
     <Value>wood</Value>
  </Block>
  <Block>
     <Name>Chair</Name>
     <Value>Plastic</Value>
  </Block>
  <Block>
     <Name>Table</Name>
     <Value>wood</Value>
  </Block>
  <Block>
     <Name>Table</Name>
     <Value>wood</Value>
  </Block>
</Blocks>

执行后:

<Blocks>
  <Block>
     <Name>Table</Name>
     <Value>wood</Value>
  </Block>
  <Block>
     <Name>Chair</Name>
     <Value>Plastic</Value>
  </Block>
</Blocks>

标签: xsltxslt-2.0

解决方案


 <xsl:template match="Blocks">
 <Blocks>
   <xsl:for-each-group select="Block" group-by="Name">
     <xsl:sequence select="."/>
   </xsl:for-each-group>
 </Blocks>

xslt 2.0


推荐阅读