5

特定のXpathケースに一致するようにXSLTでテンプレートを作成しようとしています。

この例のXMLドキュメントでは、以下を除くドキュメント全体のすべてのテキストを照合します<x>

<root>
 <tag1> I want this text </tag1>
 <tag2> I want this text </tag2>
 <x> I don't want to match on this text </x>
 <tag3> I want this text </tag3>
</root>

このXpathに関するアイデアはありますか?この特定のケースのためにドキュメントを変換するためのテンプレートを作成しようとしています。

私がこれまでに思いついたのは、機能していないこのようなものです。

<xsl:template match="text()[not(matches(.,x))]">

何か案は?

4

2 に答える 2

4

あなたが書くとき。親のノード名ではなく、テキストノードの文字列値を取ります。そして、試合には文字列のプララメーターが必要です

あなたはそれを次のように書くことができます:

<xsl:template match="text()[not(matches(name(..),'x'))]">

またはそれ以上:

<xsl:template match="text()[not(parent::x)]">
于 2012-11-09T17:06:44.943 に答える
2

はるかに良い-逆軸なし:

<xsl:template match="*[not(self::x)]/text()">
于 2012-11-10T02:39:20.627 に答える