2016-07-13 13 views
1

私は、次のHTMLフラグメントがありますXPathセレクタを使用して子ノードを除外する方法は?

//div[contains(@class, "d1") and (@class!="a1") and (@class!="a2")] 

が、これは失敗しました:

<div class="d1"> 
<p> 
    text 
<br/> 
<div class="d2"> text </div> 
... 
<a class="a1">a1</a> 
<a class="a2">a2</a> 
</div> 

私はd1クラスのコンテンツを取得しても、これを使用してa1a2のクラスを除外したいが。

セレクタを書く方法を教えてください。

答えて

1

XPathは選択用です。変換用ではありません。 (XSLTは、変換のためです。)

あなたはdiv要素がすでに入力された文書に存在する場合にのみ、特定のa要素を含まないdivの要素を選択することができます。 div要素を選択してから選択した子要素を削除することはできません。

+0

thanks.iは理由が分かりませんでした。しかし、この状況では、私は望みの結果を得ることができますか? –

+0

あなたは大歓迎です。 XPathはこれを行うことはできません。あなたの好きなプログラミング言語と組み合わせたXSLTやXML解析ライブラリのような別のツールを考えてみましょう。ありがとう。 – kjhughes