Юрий
Guest
Разбор XML-документа сгенерированного Excel'ем
Есть xml-документ сгенерированный программой Excel.
Ниже пример части этого документа
----
----
Как видно, число ячеек <Cell> в разных рядах <Row> разное, т.к. Exсel решил пустые ячейки не выводить в документ(по-видимому, для экономии места).
Тогда ясно, что значение 12 ячейки первого ряда не является однотипным со значеним 12 ячейки второго ряда.
Поэтому, чтобы разобрать документ методом SimpleXML придется в следующий код
добавлять искусственно анализ аргумента Index и последующие манипуляции по добавлению пустой ячейки.
Для разбора крупного XML документа на такие манипуляции будет уходить много времени.
Есть ли более простой вариант по разбору XML документа сгенерированного Excel'ем?
Есть xml-документ сгенерированный программой Excel.
Ниже пример части этого документа
----
PHP:
<Row>
<Cell><Data Type="String">ИМП/ЭКС - Название</Data></Cell>
<Cell><Data Type="String">Порт отправки - Название</Data></Cell>
<Cell><Data Type="String">Порт назначения - Название</Data></Cell>
<Cell><Data Type="String">Тарфирма</Data></Cell>
<Cell><Data Type="String">Круизная Линия</Data></Cell>
<Cell><Data Type="String">1 чел.</Data></Cell>
<Cell><Data Type="String">2 чел.</Data></Cell>
<Cell><Data Type="String">3 чел.</Data></Cell>
<Cell><Data Type="String">Доп.1</Data></Cell>
<Cell><Data Type="String">Доп.2</Data></Cell>
<Cell><Data Type="String">Дата начала</Data></Cell>
<Cell><Data Type="String">Срок действия</Data></Cell>
<Cell><Data Type="String">Доп. информация</Data></Cell>
<Cell><Data Type="String">Открыть ссылку</Data></Cell>
<Cell><Data Type="String">Ссылка</Data></Cell>
<Cell><Data Type="String">Время круиза</Data></Cell>
<Cell><Data Type="String">Менеджер - Фамилия</Data></Cell>
</Row>
<Row>
<Cell><Data Type="String">ИМП</Data></Cell>
<Cell><Data Type="String">Ялта</Data></Cell>
<Cell><Data Type="String">Мадрид</Data></Cell>
<Cell><Data Type="String">Economu</Data></Cell>
<Cell><Data Type="String">GreatTour Ltd.</Data></Cell>
<Cell><Data Type="Number">2430</Data></Cell>
<Cell><Data Type="Number">5840</Data></Cell>
<Cell><Data Type="Number">6000</Data></Cell>
<Cell><Data Type="String">462$</Data></Cell>
<Cell Index="11" StyleID="s21"><Data Type="DateTime">2004-11-11T00:00:00.000</Data></Cell>
<Cell StyleID="s21"><Data Type="DateTime">2004-12-31T00:00:00.000</Data></Cell>
<Cell><Data Type="String">$1</Data></Cell>
<Cell><Data Type="String">"\\Fileserver\tour.txt"</Data></Cell>
<Cell><Data Type="String">"\\Fileserver\tour.txt"</Data></Cell>
<Cell Index="17"><Data Type="String">Иванов Сергей</Data></Cell>
</Row>
Как видно, число ячеек <Cell> в разных рядах <Row> разное, т.к. Exсel решил пустые ячейки не выводить в документ(по-видимому, для экономии места).
Тогда ясно, что значение 12 ячейки первого ряда не является однотипным со значеним 12 ячейки второго ряда.
Поэтому, чтобы разобрать документ методом SimpleXML придется в следующий код
PHP:
foreach ($xml->row as $row) {
....
}
Для разбора крупного XML документа на такие манипуляции будет уходить много времени.
Есть ли более простой вариант по разбору XML документа сгенерированного Excel'ем?