質問

私は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" />
styleタグの内容を二linkタグのルールの後に適用される場合、

、結果は、ルールが定義の順序で適用されるものとは全く異なっていてもよい。

だから、私はlink[@rel="stylesheet"]styleの両方をinlcudes検索を行うだろうか?

役に立ちましたか?

解決

可能性のある使用して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>]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top