Красивый Суп парсинг файла XML - PullRequest
0 голосов
/ 01 мая 2018

Я пишу простой Python, используя Beautiful Soup для анализа нужных мне данных из XML-файла. Это работает так, как мне нужно, но у меня есть один вопрос о вас, ребята, поскольку я пытался найти это в Google, но, похоже, не могу найти то, что ищу.

Пример строки XML:

<ProductAttribute MaintenanceType="C" AttributeID="Attachment Type" PADBAttribute="N" RecordNumber="1" LanguageCode="EN">Clamp-On</ProductAttribute>

Мне нужен AttributeID в ProductAttribute. Когда я пишу, ниже я могу получить значение «Clamp-On», но мне нужен AttributeID, чтобы сказать мне, на что ссылается Clamp-On.

attributes[part.find('PartNumber').get_text()] = [x.get_text() for x in part.find_all('ProductAttribute')]

for key, value in attributes.items():
     for v in value:
     print(v)

Любые рекомендации приветствуются до отрицательной обратной связи Спасибо!

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Простое решение с использованием только библиотеки lxml:

from lxml import etree

xml_string = """<ProductAttribute MaintenanceType="C" AttributeID="Attachment Type" PADBAttribute="N" RecordNumber="1" LanguageCode="EN">Clamp-On</ProductAttribute>"""

xml = etree.XML(xml_string)
print(xml.get("AttributeID"))

выход

Attachment Type
0 голосов
/ 01 мая 2018

вот как вы можете получить атрибут тега из xml, используя BeautifulSoup и lxml,

from bs4 import BeautifulSoup

xml_string = '<ProductAttribute MaintenanceType="C" AttributeID="Attachment Type" PADBAttribute="N" RecordNumber="1" LanguageCode="EN">Clamp-On</ProductAttribute>'

soup = BeautifulSoup(xml_string, 'xml')
tag = soup.ProductAttribute
print(tag['AttributeID'])

этот код выводит значение атрибута AttributeID

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...