使用beautifulsoup4解析xml文件

时间:2018-10-12 14:40:58

标签: python beautifulsoup

我只想从配置文件名称=“ 4”中提取填充标签。我在下面编写了一个代码,该代码提取了概要文件名称=“ 4”下的所有内容,但是有没有一种方法可以收集所有的东西标签,或者我必须使用split来将东西放入东西标签中。我拥有的xml文件更长,因此使用split是可行的,但解析数据将花费更长的时间。

这是python代码

import bs4 as bs

# opens xml file and allows bs4 to parse xml file
xml_file = open('file.xml')
soup = bs.BeautifulSoup(xml_file, 'html.parser')

#extracts and prints all tags under profile name = "4"
stuff = soup.find_all('profile', {'name':"4"})
print stuff

这是xml文件,其名为file.xml。我想从配置文件名称=“ 4”中提取填充标签

<profiles>
    <profile name="1">
        <content>apple</content>
    </profile>
    <profile name="2">
        <content>peas</content>
    </profile>
    <profile name="3">
        <stuff>bear</stuff>
    </profile>
    <profile name="4">
        <content>cat</content>
        <data>
            <stuff>fish</stuff>
        </data>
        <stuff>hat</stuff>
    </profile>
</profiles>

1 个答案:

答案 0 :(得分:0)

对内部标签执行相同操作

printAndReturnTemperature

如果您只需要标签内的数据

print([i.find_all('stuff') for i in stuff])

输出:

for i in stuff:
    for x in i.find_all('stuff'):
        print(x.next)