質問: 200文字以上の長さの内部テキスト(プレーンテキスト、他の子を破棄する)を持つ最初の要素を取得するにはどうすればよいですか? 私はEmbed.lyのようなHTMLパーサーを作成しようとしています。私は最初に`og:description`チェックするフォールバックのシステムを設定しました。そして、このオカレンスを検索してから`description`メタタグを検索します。 これは、 `meta description`含むほとんどのサイトでは、現在のページの内容ではなく、そのタグのサイトが`meta description`されているためです。 例: ``` some characters 200 characters some more stuff ``` そのHTMLフラグメントの**200文字**分を取得するためにどのセレクタを使用できますか?私は*もう少し多くのものを*望んでいませんが、少なくとも200文字を含む最初のプレーンテキストである限り、それはどの要素( `
回答: **使用** : ``` (//*[not(self::script or self::style)]/text()[string-length() > 200])[1] ``` **注** :文書がXHTML文書である場合(つまり、すべての要素がxhrml名前空間にあることを意味する)、上記の式は次のように指定する必要があります。 ``` (//*[not(self::x:script or self::x:style)]/text()[string-length() > 200])[1] ``` 接頭辞がどこ`"x:"` XHTML名前空間にバインドする必要があります- `"http://www.w3.org/1999/xhtml"` (またはできるだけ多くのXPath APIはこれを呼び出す-名前空間がこれに「 *登録* 」されなければなりません接頭辞)