如果单元格包含值“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删除整行。
答案 0 :(得分: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>