Попытка получить доступ к вложенному элементу в XML с помощью BeautifulSoup - PullRequest
0 голосов
/ 10 июня 2018

Я новичок в науке о данных, и я не уверен, что это правильный вопрос, но я пытаюсь получить атрибут из набора данных XML, используя красивый суп.Вот как выглядит структура:

enter image description here

Что мне нужно, это <text>, что является кошерной едой, и это то, что я имеюнаписано до сих пор:

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

Это дает мне хороший чистый список, но оператор печати печатает это:

SRVC-MEAL-PRICE-6-BA0183Meal: Кошерный MealKosher Meal0T2BA018311

Так что мне нужно разделить и очистить данные, или есть способ получить к этому доступу <text> из этого?

1 Ответ

0 голосов
/ 10 июня 2018

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...