【问题标题】:How to load XML elements' content separately to Python list?如何将 XML 元素的内容分别加载到 Python 列表中?
【发布时间】:2023-03-13 11:38:01
【问题描述】:

我有一个名为“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 标签内容读取没问题,它工作正常,但我需要像下面一样附加 set1set2 的内容。

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

如何使用 BeautifulSoup4 做到这一点?因为当我阅读set1 或另一组的内容时,我的代码会同时给出整个内容。没有分离。所以我需要做额外的工作来将它们分开,比如"split""strip"

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

【问题讨论】:

    标签: python python-2.7 beautifulsoup xml-parsing


    【解决方案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']
    

    【讨论】:

    • 它的工作!完美,非常感谢@DYZ
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 2017-02-03
    • 2017-12-18
    • 2019-06-23
    相关资源
    最近更新 更多