我有一个名为“ config.xml”的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<set1>
<data1> data content </data1>
<data2> data content 2 </data2>
<data3> data content 3</data3>
<data4> data content 4 </data4>
</set1>
<set2>
<data1> data content </data1>
<data2> data content 2 </data2>
<data3> data content 3</data3>
<data4> data content 4 </data4>
</set2>
在这里,我尝试获取set1
的内容。假设我们无法确切说明set1
数据标签名称中将包含哪些内容,并且该数量可能会不时发生变化,因为我将其用作应用程序的配置文件。我使用XML是因为set2
也包含在XML文件中。但我想一次只读一套。
读取XML set1
标签内容还可以,但是我需要像下面一样附加set1
或set2
的内容。
datalist = ['data content','data content 2','data content 3','data content 4']
如何使用BeautifulSoup4做到这一点?因为当我读取set1
或其他集的内容时,我的代码同时给出了全部内容。没有分离。因此,我需要做一些额外的工作来分隔它们,例如"split"
,"strip"
。
仅使用bs4怎么做?有可能吗?
答案 0 :(得分:1)
您可以找到相关标签(set1
),然后提取其每个子标签的内容。
soup = bs4.BeautifulSoup(data, 'xml')
set1 = soup.find('set1')
[x.string.strip() for x in set1.children
if type(x) == bs4.element.Tag]
#['data content', 'data content 2', 'data content 3', 'data content 4']