2013-04-30 73 views
3

我有一个XML文件,我通过BeautifulSoup解析。我的文件的一小部分:检查标签是否为空

<document> 
    <ad> 
     <date>21-Apr-2013</date> 
    </ad> 
    <ad> 
     <date></date> 
    </ad> 
</document> 

什么是计算date元素不是空的数量最快的方法是什么?如果我将date转换为属性ad,这会更快吗?

回答

3

这人会指望空<date>标签:

sum(1 for s in soup.find_all('date') if s.text) 

但如果你真的去了速度,可以考虑一些其他的解析器,例如SAX

属性不相符,使用find_all('ad', attrs={'date': ''})

+2

'如果s.text'或'如果不是s.text'? – 2013-04-30 20:21:22

+0

如果'date'是'ad'的属性,你能告诉我怎么做? – 2013-04-30 20:26:36