2
我在使用cssselect和XHTML(或帶有命名空間的XML)時遇到了問題。雖然文件說,如何在csselect使用命名空間我不明白:cssselect namespaceslxml中的cssselect引起的XHTML命名空間問題
我輸入XHTML字符串:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Teststylesheet</title>
<style type="text/css">
/*<![CDATA[*/
ol{margin:0;padding:0}
/*]]>*/
</style>
</head>
<body>
</body>
</html>
我的Python腳本:
parser = etree.XMLParser()
tree = etree.fromstring(xhtmlstring, parser).getroottree()
for style in CSSSelector("style")(tree):
print "HAVE CSS!"
的Python腳本不是可以打印任何Have CSS!
。使用etree.HTMLParser
而不是etree.XMLParser
的作品,但我真的想使用XMLParser並保留XHTML的一切(名稱空間,結構)。
任何人都可以幫我解決這個命名空間問題嗎?
謝謝!我剛剛在CSSSelector(「style」)(tree):'with'CSSSelector(「xhtml | style」,namespaces = {'xhtml':'http:// www。 w3.org/1999/xhtml'})(樹):'它工作!在我看來,cssselect和命名空間的文檔可以改進。 :-) – therealmarv