Парсинг XML и вывод результата в файл - в таблицу (csv)

Андрей10 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
28.01.2015

Имеется некоторое количество xml файлов, в которых указаны однотипные данные.

Вот пример содержания xml файла (полностью файл приложил к заданию):

- номер квартиры

МишинаОльгаВасильевна

56.4 - площадь помещения

- доля в праве 1/3 (может меняться 1/4, 1/2, 3/4, 3/5 и тп.). Нужно представить в виде: 0,333, т.е. поделить значение 1 на 3 (Numerator/Denominator) , округлить до тысячных и экспортировать в csv уже в виде 0,333 (также делить 1 на 4, 3 на 4, 3 на 5 и тп.). При отсутствии значений Numerator и Denominator (если собственник один, то их не будет), выдать в ячейку цифру 1.

Из этих данных должна получится таблица в файле csv (№квартиры;ФИО;Площадь;Доля в праве) в таком виде:

19;Мишина Ольга Васильевна;56,4;0,333

19;Аскар Равилевич Хабибуллин;56,4;0,333

35;Антонов Юрий Николаевич;62,8;1

41;Винодеев Кирил Никифорович;60,7;0,750

и тд..

Важные уточнения.

1. Количество файлов xml для парсинга может быть от 5 до 500-700;

2. Все данные должны быть записаны в один файл csv с разделителем ; (точка с запятой);

3. В 1 файле xml могут быть одни данные "№квартиры", "площадь" на несколько разных "ФИО", "доля в праве".

Каждое новое ФИО надо записывать в отдельную строку, как в примере и нужно распространить данные "№квартиры", "площадь" на каждое значение "ФИО", "доля в праве" внутри одной квартиры.

4. Площадь помещения в xml указана с точкой, разделяющей десятичные числа (56.4). Необходимо при экспорте заменить точку на запятую и в файл csv записать 56,4.

5. Программа должна иметь веб интерфейс с полями:

- путь к папке с xml (где лежат те файлы, которые надо парсить. Пусть парсит все, что лежит в папке);

- кнопку "создать csv" (старт, ок, go - не важно);

Готовый csv должен появиться в той же папке (если это мешает процессу - в любой другой - не существенно).

Примечание: на рабочей машине стоит эмулятор сервера MAMP для mac os, все операции можно делать локально. В случае нехватки ресурсов указанного приложения, можно расширить либо заменить другим эмулятором по рекомендации исполнителя.

Для теста приложил пачку xml (около 60 файлов) - как раз то с чем приходится работать.

Заявки фрилансеров