1
我想用lxml.etree.findall
在XHTML文件中找到所有样式表定义。这可能很简单etree.findall:'OR'-lookup?
elems = tree.findall('link[@rel="stylesheet"]') + tree.findall('style')
但是CSS样式定义的问题是,顺序很重要,例如,
<link rel="stylesheet" type="text/css" href="/media/css/first.css" />
<style>body:{font-size: 10px;}</style>
<link rel="stylesheet" type="text/css" href="/media/css/second.css" />
如果style
标签的内容是在所述两个link
标记的规则之后施加,则结果可能是从一个其中规则在定义的顺序应用完全不同。
那么,我该如何做一个查找,包括link[@rel="stylesheet"]
和style
?
好笑,我试图以'tree.findall'表达,它没有发生,我认为'tree.xpath'可以工作。谢谢! – 2010-03-16 11:37:04
不客气!在我写作时,我意识到你的'findall'表达式包含一个谓词,我不知道它会接受。自从熟悉'xpath'后,我一直没有回到'findall'。 – MattH 2010-03-16 11:43:53