2011-01-04 16 views
3

大文字と小文字を区別せずにキーワード 'keyword'を含む値をname属性に持つメタタグと一致させようとしているXPathがあります。 「私はScrapyを使用していたXPathXPathで大文字と小文字を区別しない値を一致させる方法

'descendant::meta[contains(lower-case(@name), "keyword")]/@content' 

<meta name="KEYWORDS"> 
<meta name="Keywords"> 
<meta name="keywords"> 

、それが内蔵されていますセレクタが、私はこのXPathをしようとすると、私はエラーを取得:基本的に、私は一致しようとしています無効なXPath:... "と表示されます。 私は間違って何をしていますか、私は何をしたいのですか?

+0

エラーメッセージをトリミングしないでください!あなたがXPath 2.0の機能を利用しているからだと思います。正しい答えは 'translate()'(より一般的で適切なXPath 1.0解) –

答えて

10

Sciac Selectorは、AFAIKがXPath 2.0をサポートしていないlibxml2ライブラリに基づいて構築されています。少なくともlibxsltは確かではありません。

XPath 1.0 translate()を使用してこれを解決できます。一般的には次のようになります:

translate(yourString, 
      'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
      'abcdefghijklmnopqrstuvwxyz') 
+0

+1を使用してください。 –

+0

それはそれでした。あなたの答えをありがとう。 – elbear

+0

ようこそ。 – Flack

関連する問題