1

XSLT変換に問題があり、誰かが私を助けてくれることを望んでいます。これが私が扱っているデータの構造です、

<excelFiles>
    <sheet>
        <row index='1'>
            <column_1>allowedValue</column_1>
            <column_2>US</column_2>
             <column_3>allowedValue</column_3>
        </row>
        <row index='1'>
           <column_1>notAllowedValue</column_1>
           <column_2>US</column_2>
           <column_3>allowedValue</column_3>
        </row>
  </sheet>
</excelFiles>

私がやろうとしているのは、どの子ノードにも無効なデータが含まれていない行のみをコピーすることです。これはXSLTで可能でしょうか?この問題を解決するためにXSLTのみを使用するように制約されています。

明確にするために編集:無効なデータは、ノードの唯一の値が「-」文字である場合です。

4

1 に答える 1

2

ID変換から始めて、不要なノードに一致し、それらを無視するno-opテンプレートを追加します。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- ignore any row element that has any child element whose text value is
       a single hyphen -->
  <xsl:template match="row[* = '-']" />

  <!-- copy everything else -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
于 2012-08-30T16:13:43.520 に答える