LINUX.ORG.RU

История изменений

Исправление CrX, (текущая версия) :

Можно на питоне накидать быстренько

import xml.etree.ElementTree as ET
tree = ET.parse('/путь/к/файлу.xml')
root = tree.getroot()

for i in root.iter('person'):
    person = i.attrib
    person['address'] = [x.attrib for x in i.iter('address')][0]
    print(person)

На каждой итерации получаешь словарик вот такой:

{'uid': '727475820', 'first-name': '', 'last-name': '', 'nick-name': '', 'cn': 'Zhbert', 'address': {'uid': '678377311', 'alias': '', 'email': 'zhbert@gmail.com', 'remarks': ''}}

Ну и соответственно, вместо print просто нужные элементы в нужном порядке запятой соединяешь и пишешь в файл — в таком csv-формате, как тебе надо.

Исходная версия CrX, :

Можно на питоне накидать быстренько

import xml.etree.ElementTree as ET
tree = ET.parse('/путь/к/файлу.xml')

for i in root.iter('person'):
    person = i.attrib
    person['address'] = [x.attrib for x in i.iter('address')][0]
    print(person)

На каждой итерации получаешь словарик вот такой:

{'uid': '727475820', 'first-name': '', 'last-name': '', 'nick-name': '', 'cn': 'Zhbert', 'address': {'uid': '678377311', 'alias': '', 'email': 'zhbert@gmail.com', 'remarks': ''}}

Ну и соответственно, вместо print просто нужные элементы в нужном порядке запятой соединяешь и пишешь в файл — в таком csv-формате, как тебе надо.