0
要素ツリー内にいくつかのノードを見つけようとしていますが、これは構文解析にどの実装を使用するかによって動作が異なるようです。それはドキュメントと一致していないようです。何か不足していますか?私もElementTreeのでhtml5lib試してみたが、それも文書に準拠しています解析を実行していないようだ要素ツリーとxpathとの相違
In [59]: type(html5lib.parse('<html><x /></html>', treebuilder='lxml').find('.//x'))
Out[59]: <type 'NoneType'>
:
In [72]: parser = html5lib.HTMLParser(tree=html5lib.treebuilders.getTreeBuilder('etree', cElementTree))
In [73]: type(parser.parse('<html><x /></html>'))
Out[73]: <type 'NoneType'>
それでは、どのよう
In [52]: ElementTree.fromstring('<html><x /></html>').find('.//x')
Out[52]: <Element 'x' at 0x3008c10>
が、私はこれを解決するのですか? ElementTreeは、壊れたHTMLを解析しないため、そのまま使用することはできません。
あなたのコメントは私に解決策をもたらしました: 'html5lib.parse(...、namespaceHTMLElements = False).xpath( '.// x')'はうまく動作します:) – viraptor