私はこのxml文書を持っています:
<tags>
<w lemme="déclaration" pos="NOM">Déclaration</w>
<w lemme="du" pos="PRP:det">des</w>
<w lemme="droit" pos="NOM">droits</w>
<w lemme="de" pos="PRP">de</w>
<w lemme="le" pos="DET:ART">l'</w>
<w lemme="homme" pos="NOM">homme</w>
<w lemme="et" pos="KON">et</w>
<w lemme="," pos="PUN">,</w>
...
</tags>
記事と句読点を除外するために xsl を使用しようとしています。ここのように < w lemme="," pos="PUN" >、< /w > および < w lemme="de" pos="PRP" >de< /w> < w lemme="le" pos="DET :ART">l'< /w>。そこで、動作するがタグ < tags> を含むすべてのタグにすべての条件を一般化する次のスタイルシートを作成しました。
<xsl:template match="*">
<xsl:choose>
<xsl:when test="contains(@pos,'PUN')"></xsl:when>
<xsl:when test="contains(@pos,'PRP')"></xsl:when>
<xsl:when test="contains(@pos,'DET')"></xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:attribute name="lemme">
<xsl:value-of select="@lemme"/>
</xsl:attribute>
<xsl:attribute name="pos">
<xsl:value-of select="@pos"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
そして、私はこの結果を持っています:
<tags lemme="" pos="">
<w lemme="déclaration" pos="NOM">Déclaration</w>
<w lemme="droit" pos="NOM">droits</w>
<w lemme="homme" pos="NOM">homme</w>
<w lemme="et" pos="KON">et</w>
<w lemme="citoyen" pos="NOM">citoyen</w>
したがって、機能し、興味のある行のみが表示されますが、最初の行の < tags > タグに lemme="" pos="" も追加したくないだけです。< w > タグのみを取得するには、xsl で何を変更する必要がありますか。< xsl:template match="w" > を試しましたが、有効な xml が生成されませんでした。助けてください?