2015-11-30 414 views
-1

如果單元格包含值「no」,請使用xslt刪除整行。 下面給出的工作簿的XML代碼:如果單元格包含「否」文本,則刪除整行

<Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="4" x:FullColumns="1" 
x:FullRows="1"> 
<Row> 
<Cell ss:StyleID="s23"><Data ss:Type="String">Name</Data></Cell> 
<Cell ss:StyleID="s24"><Data ss:Type="String">Section</Data></Cell> 
<Cell ss:StyleID="s24"><Data ss:Type="String">Aggregate</Data></Cell> 
<Cell ss:StyleID="s25"><Data ss:Type="String">Result</Data></Cell> 
</Row> 
<Row> 
<Cell ss:StyleID="s26"><Data ss:Type="String">AA</Data></Cell> 
<Cell ss:StyleID="s27"><Data ss:Type="String">A</Data></Cell> 
<Cell ss:StyleID="s27"><Data ss:Type="Number">68.0</Data></Cell> 
<Cell ss:StyleID="s28"/> 
</Row> 
<Row> 
<Cell ss:StyleID="s26"><Data ss:Type="String">BB</Data></Cell> 
<Cell ss:StyleID="s27"><Data ss:Type="String">A</Data></Cell> 
<Cell ss:StyleID="s27"><Data ss:Type="Number">99.0</Data></Cell> 
<Cell ss:StyleID="s28"/> 
</Row> 
<Row ss:Height="14.0"> 
<Cell ss:StyleID="s29"><Data ss:Type="String">CC</Data></Cell> 
<Cell ss:StyleID="s30"><Data ss:Type="String">C</Data></Cell> 
<Cell ss:StyleID="s30"><Data ss:Type="Number">20.0</Data></Cell> 
<Cell ss:StyleID="s31"><Data ss:Type="String">no</Data></Cell> 
</Row> 
</Table> 

在上述編碼中,第四行第四單元格中包含「否」的文字。需要使用xslt刪除整行。

回答

1

希望下面的代碼有效。

<xsl:stylesheet version="2.0" exclude-result-prefixes="ss" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xsl:output method="xml" indent="yes"/> 

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

    <xsl:template match="attribute[@name = 'String']/text()"> 
     <xsl:value-of select="replace(., '^.*no.*$\n*', '', 'm')"/> 
    </xsl:template> 

</xsl:stylesheet> 
+0

NachuArun - Ennama ippadi panrengalema – Sam

相關問題