Python etree.findall:&x27;或'-查找?
我想用Python etree.findall:&x27;或'-查找?,python,xpath,lxml,elementtree,Python,Xpath,Lxml,Elementtree,我想用lxml.etree.findall在XHTML文件中查找所有样式表定义。这可以简单到 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: 10
lxml.etree.findall
在XHTML文件中查找所有样式表定义。这可以简单到
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" />
正文:{字体大小:10px;}
如果在两个链接
标记中的规则之后应用样式
标记的内容,则结果可能与按定义顺序应用规则的结果完全不同
那么,如何使用XPATH执行包含链接[@rel=“stylesheet”]
和样式的查找呢
data = """<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" />
"""
from lxml import etree
h = etree.HTML(data)
h.xpath('//link[@rel="stylesheet"]|//style')
[<Element link at 97a007c>,
<Element style at 97a002c>,
<Element link at 97a0054>]
data=”“”
正文:{字体大小:10px;}
"""
从lxml导入etree
h=etree.HTML(数据)
h、 xpath('//link[@rel=“stylesheet”]|//style')
[,
,
]
有趣的是,我用tree.findall
尝试了这个表达式,我没有想到tree.xpath
可以工作。谢谢不客气!在我写作时,我意识到您的findall
表达式包含一个谓词,我不知道它会接受。自从熟悉了xpath
之后,我就再也没有回到findall
。