2017-03-09 7 views
1

私は以下のようなxmlファイルを持っています。 xslt 1.0を使って、パスに "fast"という単語が含まれていないすべての "name"要素を選択する必要があります。この場合は、/ root/nameと/ root/name/nameを選択しますが、/ root/fast/nameは選択しません。XSLT:テンプレートが要素に含まれていないすべての要素に一致します

は私の元のテンプレートマッチングは

<xslt:template match="/root//name"> 
    .... 
</xslt:template> 

これは働いていたが、その後「速い」の要素が追加されましたので、私のセレクタを破りました。

どうすればXSLT 1.0で対応できますか?私は複数の方法を試してきましたが、私は必要なものをコンパイルして実行する方法を見つけられないようです。

ありがとうございます。

<root> 
    <fast> 
     <name>fast/name</name> 
    </fast> 
    <name>name</name> 
    <name> 
     <name>name/name</name> 
    </name> 
</root> 

答えて

0

あなたは、この使用することができます:あなたはデータを条件に実行する場合のxsl <

<xsl:template match="/root//name[not(ancestor::fast)]"> 
+0

より

<xsl:template match="/root//name[not(contains(., 'fast'))]"> 

たり、要素を条件に実行する場合よりも

を:テンプレートmatch = "/ root // name [not(ancestor :: fast)]">トリックを実行しました。大いに感謝する! –

関連する問題