テンプレートマッチの実装と条件
<xsl:template match="a[!(img)and(not(@id))]">
そのようなテンプレートを書きたい
a tag should not have attribute id and should not be followed by img tag.
しかし、その表示エラー。誰でも助けることができますか
テンプレートマッチの実装と条件
<xsl:template match="a[!(img)and(not(@id))]">
そのようなテンプレートを書きたい
a tag should not have attribute id and should not be followed by img tag.
しかし、その表示エラー。誰でも助けることができますか
兄弟ではなく子を参照すると仮定すると、サポートされていない演算子の代わりにfollowed by img tag
、関数の使用を統合するだけで済みます。not()
!
<xsl:template match="a[not(img) and not(@id)]">
<!-- ... -->
</xsl:template>
まず、エラーはおそらく!(img)を実行したことが原因であり、これは無効です。あってはならない(img)
ただし、XSLT では、img要素がa要素の子であるかどうかを確認しています。代わりに、次の兄弟軸を実際に作成する必要があります。
<xsl:template match="a[not(following-sibling::*[1][self::img]) and not(@id)]">
したがって、following-sibling::*[1]はa要素の最初の次の兄弟に一致し、[self::img]はそれがimgタグであるかどうかをチェックします。
a[not(following-sibling::*[self::img])だけを実行すると、 a要素の直後の兄弟だけでなく、後続の兄弟が検索されることに注意してください。