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