【问题标题】:Trying to access nested element in XML using BeautifulSoup尝试使用 BeautifulSoup 访问 XML 中的嵌套元素
【发布时间】:2018-11-19 16:30:09
【问题描述】:

我是数据科学的新手,我不确定这是否是正确的问题,但我正在尝试使用漂亮的汤从 XML 数据集中获取属性。下面是结构的样子:

我需要的是<text>,这是 Kosher Meal,这是我到目前为止所写的:

meals = b.find_all(attrs={'refs':'Meal'})
for meal_name in meals:
    print(meal_name.text)

这给了我一个很好的干净列表,但打印语句会打印:

SRVC-MEAL-PRICE-6-BA0183Meal: Kosher MealKosher Meal0T2BA018311

那么我需要拆分和清理数据还是有办法从中访问<text>

【问题讨论】:

  • 您可以发布 XML 数据以便我们复制/粘贴吗?
  • 这里的基本规则是不要发布文本图像,复制/粘贴实际文本。对于您复制/粘贴的几乎所有内容,请使用代码格式。

标签: python xml python-3.x beautifulsoup


【解决方案1】:

soup.find_all() 返回所有餐点 XML 标签,而不是您期望的餐点名称。对于找到的每一个餐标签,都需要独立搜索里面的Name标签:

meal_tag_list = b.find_all(attrs={'refs':'Meal'})
for meal_tag in meal_tag_list:
    meal_name = meal_tag.find("Name").text
    print(meal_name)

如果要提取描述,可以使用类似的方法:

meal_tag_list = b.find_all(attrs={'refs':'Meal'})
for meal_tag in meal_tag_list:
    description_tag_list = meal_tag.find("Descriptions")
    for description_tag in description_tag_list:
        description_text = description_tag.find("Text").text
        print(description_text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多