4

エンタープライズ検索エンジンを構成する必要があり、ドキュメントのインデックス作成は xpath セレクターを介して行われます。現在のセットアップには xpath があります

.//div[@id='content']

基本的に、Web サイトの主要部分のすべての要素を選択します。一方、多くの意味のないものが含まれている追加の div があるため、この xpath を変更して、この div タグをスキップしようとしました。「not」に関するドキュメントに苦労していますが、これまでのところ運がありません。

<div id="content">
  <div id="i-want-this">
   ...
  </div>
  <div id="i-do-not-want-this">
   <span>foo</span>
  </div>
  <div id="i-want-this-too">
   ...
  </div>
</div>

コメントのヒントはこれまでのところ役に立ちましたが、スキップしたい div タグの子要素にはまだ問題があります。内部にスパンタグがあるとしましょう。私が選択した場合

//div[@id='content']/*[not(@id='i-do-not-want-this')] 私の結果にはまだこのスパンコンテンツが含まれています。したがって、親 id="i-do-not-want-this" を持たない id="content" 以下のすべての要素に対するクエリが必要だと思います。右?

4

1 に答える 1

7

次のクエリを使用します。id ではないすべての子要素を選択しますi-do-not-want-this

//div[@id='content']/*[@id != 'i-do-not-want-this']

または-同じロジック-ǹot()関数を使用します(@paul_tに感謝)

//div[@id='content']/*[not(@id='i-do-not-want-this')]

アップデート

が同じ論理を言ったとき、これは本当に正しくありません。@IanRoberts からのコメントをご覧ください。

于 2013-10-02T09:50:36.930 に答える