gpt4 book ai didi

python - etree.findall : 'OR' -lookup?

转载 作者:行者123 更新时间:2023-11-30 23:59:19 24 4
gpt4 key购买 nike

我想使用 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" />

如果在两个link标签中的规则之后应用style标签的内容,结果可能与应用规则的结果完全不同定义顺序。

那么,我该如何进行包含 link[@rel="stylesheet"]style 的查找?

最佳答案

可以使用 XPATH:

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>]

关于python - etree.findall : 'OR' -lookup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2453891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com