我应该如何找到这个街区的深度 -
<div>
<div>
<div>
</div>
</div>
</div>
在这种情况下,它应该是3。 任何线索/代码都会有所帮助。
答案 0 :(得分:3)
有很多方法可以做到这一点。我会not recommend使用正则表达式解析XML。
一种方法是使用Python标准的HTMLParser
:
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.depth = 1
def handle_starttag(self, tag, attrs):
print 'Encountered %s at depth %d.' % (tag, self.depth)
self.depth += 1
def handle_endtag(self, tag):
self.depth -= 1
if __name__ == '__main__':
html = '''
<div>
<div>
<div>
</div>
</div>
</div>
'''
MyHTMLParser().feed(html)
运行此脚本会产生:
Encountered div at depth 1.
Encountered div at depth 2.
Encountered div at depth 3.