5

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

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

使用 XPath

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

我正在使用 Scrapy,它是内置的选择器,但是当我尝试这个 XPath 时,我收到一个错误“Invalid XPath:...”。我做错了什么,做我想做的事情的正确方法是什么?

4

1 回答 1

13

Scrapy 选择器基于 libxml2 库构建,AFAIK 不支持 XPath 2.0。至少 libxslt 不确定。

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

translate(yourString, 
          'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
          'abcdefghijklmnopqrstuvwxyz')
于 2011-01-04T20:58:59.997 回答