如何将不区分大小写的值与XPath匹配

时间:2011-01-04 19:47:05

标签: xpath scrapy

我有一个XPath,我正在尝试匹配具有name属性的元标记,其值包含单词'keyword',无论大小写如何。基本上,我想要匹配:

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

使用XPath

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

我正在使用Scrapy并且它是​​内置的选择器,但是当我尝试这个XPath时,我收到错误“无效的XPath:...”。 我做错了什么,做出我想要的正确方法是什么?

1 个答案:

答案 0 :(得分:10)

Scrapy选择器是在libxml2库上构建的,AFAIK不支持XPath 2.0。至少libxslt并不确定。

您可以使用XPath 1.0 translate()来解决此问题。一般来说,它看起来像:

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