我有一个xml文件,如下所示:
<elements>
<topic id1=111 id2=222>
<title>title1</title>
<topic id1=333 id2=444>
<title>title2</title>
</topic>
<topic id1=555 id2=666>
<title>title3</title>
</topic>
</topic>
<topic id1=777 id2=888>
<title>title3</title>
</topic>
</elements>
我需要输出标题元素中的所有文本以及所有id1和id2属性,如下所示:
[[title1,111,222],[title2,333,444],...]
我稍后会把它们放在一个csv文件中,但我知道怎么做,我完全陷入了这个问题。我看过这样的帖子one,但我似乎并没有立即从所有这些帖子中获取信息。我正在使用python 3.3以防万一。非常感谢任何想法。
谢谢!
答案 0 :(得分:1)
Python 2.7.5
text = '''<elements>
<topic id1=111 id2=222>
<title>title1</title>
<topic id1=333 id2=444>
<title>title2</title>
</topic>
<topic id1=555 id2=666>
<title>title3</title>
</topic>
</topic>
<topic id1=777 id2=888>
<title>title3</title>
</topic>
</elements>'''
import BeautifulSoup as bs
results = []
soup = bs.BeautifulSoup(text)
topics = soup.findAll('topic')
for x in topics:
e = []
e.append(x.find('title').text)
e.extend( a[1] for a in x.attrs )
results.append(e)
print results
[[u'title1', u'111', u'222'], [u'title2', u'333', u'444'], [u'title3', u'555', u'666'], [u'title3', u'777', u'888']]