Задать вопрос
@greatazazan

Парсинг XML-файлов скриптом. Нужно вывести нужную информацию в одну строку, каким путём это проще сделать?

Доброго дня. Нужно спарсить данные с xml-ек, желательно скриптом, файлов много.
Каким образом я могу следующий формат:
<fireparams>
    <fire>
      <param name="extra_ammo" value="120" />
      <param name="ammo_type" value="bullet_ar" />
      <param name="bullet_chamber" value="1" />
      <param name="helper_tp" value="weapon_term" />
      <param name="helper_fp" value="weapon_term" />
      <param name="nearmiss_signal" value="OnNearMiss" />
    </fire>
</fireparams>

спарсить быстро в формат типа:
extra_ammo=120|ammo_type=bullet_ar|bullet_chamber=1 и т. д.?

Т.е. здесь не просто значения меж открывающим и закрывающим тегом, что довольно просто спарсить, значения хранятся в value=

Буду очень благодарен.
  • Вопрос задан
  • 884 просмотра
Подписаться 1 Простой Комментировать
Ответ пользователя Владимир Куц К ответам на вопрос (4)
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
На python стандартными библиотеками:
data = '''<fireparams>
    <fire>
      <param name="extra_ammo" value="120" />
      <param name="ammo_type" value="bullet_ar" />
      <param name="bullet_chamber" value="1" />
      <param name="helper_tp" value="weapon_term" />
      <param name="helper_fp" value="weapon_term" />
      <param name="nearmiss_signal" value="OnNearMiss" />
    </fire>
</fireparams>'''

import xml.etree.ElementTree as ET

print('|'.join([f"{x.get('name')}={x.get('value')}" for x in ET.fromstring(data)[0]]))

extra_ammo=120|ammo_type=bullet_ar|bullet_chamber=1|helper_tp=weapon_term|helper_fp=weapon_term|nearmiss_signal=OnNearMiss
Ответ написан
Комментировать