1

我想删除包含值 '()z()' 和空标签的记录,输入 XML :

<R>
  <B_01>
   <C_01_02>()z()</C_01_02>
   <C_01_03>()z()</C_01_03>
   <C_01_04>()z()</C_01_04>
   <C_01_05>()z()</C_01_05>
   <B_01_01>
     <C_01_01_01>()z()</C_01_01_01>
     <C_01_01_02>()z()</C_01_01_02>
   </B_01_01>  
  </B_01>
  <B_01>
   <C_01_01>1116</C_01_01>
   <C_01_02>0</C_01_02>
   <C_01_03>1944-01-01T00:00:00</C_01_03>
   <B_01_01>
    <C_01_01_01>1900001761</C_01_01_01>
    <M_01_01_01>0</M_01_01_01>
    <M_01_01_01>1</M_01_01_01>
    <M_01_01_02/><M_01_01_03/>
    </B_01_01>
    <M_01_01/>
    <M_01_02/>
    <M_01_03/>
   <T1_01_01>ARNAUD</T1_01_01>
   <T1_01_02>JEAN MARIE</T1_01_02>
  </B_01>
</R>

我尝试了很多脚本,但没有成功

谢谢你的帮助

4

1 回答 1

1

也许这个?

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output omit-xml-declaration="no" indent="no"/>
  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>
  <!--xsl:template match="*[not(text()) or text() = '()z()']"/-->
  <xsl:template match="*[not(node()) or text() = '()z()']"/> <!-- better -->
</xsl:stylesheet>
于 2013-08-22T11:01:20.190 回答