0

下面是我用来获取给定节点的所有子节点列表的代码片段。但是 nextSibling() 永远不会返回 null 所以 while 循环永远执行。请帮忙。

 children = [ ]
 children.append(documentElement.firstChild())
 curr_node = children[0]
 while curr_node.nextSibling():
     print curr_node, len(children)
     children.append(curr_node.nextSibling())
     curr_node = curr_node.nextSibling()
4

1 回答 1

2

据我了解,nextSibling 将始终返回一个 QWebElement,但是您可以使用 isNull() 检查它是否为空元素

while not curr_node.nextSibling().isNull():
     print curr_node, len(children)
     children.append(curr_node.nextSibling())
     curr_node = curr_node.nextSibling()

您可以在http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qwebelement.html#isNull http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/中查看qwebelement.html#nextSibling

于 2011-04-23T20:20:10.503 回答