使用BeautifulSoup遍历多个XML标签,提取字符串列表
# Sample XML file.
xml = """
<1 sno=1>
<2>
Some content
</2>
<2>
Some other content
</2>
<2>
Some more contents
</2>
</1>
<1 sno=2>
<2>
Some content
</2>
<2>
Some other content
</2>
<2>
Some more contents
</2>
</1>
<1 sno=3>
<2>
Some content
</2>
<2>
Some other content
</2>
<2>
Some more contents
</2>
</1>
"""
这是一个示例的XML文件;我想处理所有的<1>标签。
- 首先,我需要找到所有的1标签,
- 其次,把内容提取成一个列表。我希望<2>能作为单独的列表元素。
比如,我希望得到一个像
['<2>','一些内容','</2>' .....]
这样的列表,而不是像['<2>一些内容</2>' , ....]
这样的。
_
from bs4 import BeautifulSoup as BS
xml = BS(xml)
xmlList = []
for line in xml.1:
xmlList.append(line)
print xmlList
# To grab multiple '1' tags:
from bs4 import BeautifulSoup as BS
xml = BS(xml)
xmlList = []
for line in xml.findall('1'):
xmlList.append(line)
print xmlList
显示的列表像 ['<2>一些内容</2>' , ....]
,这是我不想要的。
如果我使用 find_all()
语句来抓取所有的'1'标签,结果也是一样的。我该怎么解决这个问题呢?
1 个回答
0
那直接把最后一部分切掉再加到列表里怎么样呢?
for line in xml.findAll('1'): #also should be findAll() vs findall()
xmlList.append(line[:-4])