我有一个XML文件包含许多相关信息的记录,如下所示
<file>
<record>
<type>a</type>
<number>2</number>
</record>
<record>
<type>b</type>
<number>9</number>
</record>
等
我希望BS读取所有XML文件并按列给我结果:
a 2
b 9 等
编辑
谢谢大家的推荐。我安装了xml解析器,我使用的是bs4 xml模式。我得到了错误但是我得到了错误:
a b
2 9
而不是
a 2
b 9
新代码:
from bs4 import BeautifulSoup
soup = BeautifulSoup(open('file.xml'),"xml")
with open('output.txt') as f:
for type1,number in (soup.findall('type'),soup.findall('number')):
f.write ('%s\t%s\n' % (type1.text, number.text))
第二次编辑:
如果我在XML文件中添加第3条记录,则会出现以下错误
追踪(最近一次通话): File&#34; multixmlsript.py&#34;,第8行,in for type1,number in(soup.findAll(&#39; type&#39;),soup.findAll(&#39; number&#39;)): ValueError:要解压缩的值太多
答案 0 :(得分:0)
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(open('path/to/file'))
with open('/path/to/output.txt', 'w') as f:
for i in range(len(soup.findAll('type'))):
f.write ('%s\t%s\n' % (soup.findAll('type')[i].text, soup.findAll('number')[i].text))
您已使用BeautifulSoup
用于HTML。但是你需要将BeautifulStoneSoup
用于xml。我希望这会对你有所帮助。