如何将XML元素的内容分别加载到Python列表中?

2024-05-17 14:56:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为'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文件中。但我想一次只看一套

XMLset1标记内容读取是可以的,它工作正常,但是我需要附加set1set2的内容,如下所示

 datalist = ['data content','data content 2','data content 3','data content 4']

我怎样才能用BeautifulSoup4做到这一点?因为当我阅读set1或其他集合的内容时,我的代码会同时给出整个内容。没有分离。所以我需要做额外的工作来分离它们,比如"split""strip"

只有bs4它怎么能做到呢?可能吗


Tags: 文件标记config内容dataversionxmlcontent
1条回答
网友
1楼 · 发布于 2024-05-17 14:56:08

您可以找到有问题的标记(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']

相关问题 更多 >