|
Автор |
Сообщение |
simbir
Зарегистрирован: 19.10.2010 Сообщения: 9
|
|
|
|
Существует ли возможность в PHP произвести парсинг xml файла со сложной структурой ?
Фрагмент файла
Код: |
<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2013-07-19T11:21:49">
<ПакетПредложений СодержитТолькоИзменения="false">
<Ид>57806134-dc14-11e1-bfae-5cd998c1acf4#</Ид>
<Наименование>Пакет предложений</Наименование>
<ИдКаталога>57806134-dc14-11e1-bfae-5cd998c1acf4</ИдКаталога>
<ИдКлассификатора>57806134-dc14-11e1-bfae-5cd998c1acf4</ИдКлассификатора>
<Владелец>
<Ид>3603377c-95cd-4a67-b8c8-fe1f9245b21a</Ид>
<Наименование>Предприниматель </Наименование>
<ПолноеНаименование>Индивидуальный предприниматель </ПолноеНаименование>
<ИНН>00000000000</ИНН>
<ОКПО>0000000000</ОКПО>
<РасчетныеСчета>
<РасчетныйСчет>
<НомерСчета>000000000000000000</НомерСчета>
<Банк>
<СчетКорреспондентский>00000000000000000000</СчетКорреспондентский>
<Наименование> ОАО АКБ "СВЯЗЬ-БАНК"</Наименование>
<БИК>00000000000000</БИК>
</Банк>
</РасчетныйСчет>
</РасчетныеСчета>
</Владелец>
<ТипыЦен>
<ТипЦены>
<Ид>5780615f-dc14-11e1-bfae-5cd998c1acf4</Ид>
<Наименование>Оптовая</Наименование>
<Валюта>руб</Валюта>
<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>true</УчтеноВСумме>
</Налог>
</ТипЦены>
<ТипЦены>
<Ид>57806164-dc14-11e1-bfae-5cd998c1acf4</Ид>
<Наименование>Розничная</Наименование>
<Валюта>руб</Валюта>
<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>true</УчтеноВСумме>
</Налог>
</ТипЦены>
</ТипыЦен>
<Предложения>
<Предложение>
<Ид>65dd12ab-bd84-11e2-b8d7-5cd998c1acf4</Ид>
<Артикул>54115Ш-1301010-11</Артикул>
<Наименование>"CuproBraze" Радиатор охлаж. 3-х КАМАЗ-65115 с дв. Cummins ISBe 285л.с. (D-3), дв. КАМАЗ 43253,43255</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="штука">шт.</БазоваяЕдиница>
<Цены>
<Цена>
<Представление>11 200 руб. за шт.</Представление>
<ИдТипаЦены>5780615f-dc14-11e1-bfae-5cd998c1acf4</ИдТипаЦены>
<ЦенаЗаЕдиницу>11200</ЦенаЗаЕдиницу>
<Валюта>руб</Валюта>
<Единица>шт.</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
<Количество>0</Количество>
</Предложение>
<Предложение>
<Ид>a6294368-d373-4d00-9657-529de0f6c2dc</Ид>
<Наименование>"CuproBraze" Радиатор охлаждения МАЗ с двиг. ЯМЗ 7511 543208-1301010-001</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="штука">шт.</БазоваяЕдиница>
<Цены>
<Цена>
<Представление>24 675 руб. за шт.</Представление>
<ИдТипаЦены>5780615f-dc14-11e1-bfae-5cd998c1acf4</ИдТипаЦены>
<ЦенаЗаЕдиницу>24675</ЦенаЗаЕдиницу>
<Валюта>руб</Валюта>
<Единица>шт.</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
<Количество>0</Количество>
</Предложение>
</Предложения>
</ПакетПредложений>
</КоммерческаяИнформация>
|
|
|
Вернуться к началу |
|
|
Anderson
Завсегдатай
Зарегистрирован: 08.07.2006 Сообщения: 642 Откуда: localhost
|
|
Вернуться к началу |
|
|
simbir
Зарегистрирован: 19.10.2010 Сообщения: 9
|
|
|
|
Как только начинаю использовать скрипты из примеров вылетает ошибка.
Код: |
<?php
$xml=simplexml_load_file("offers.xml");
$PARS = new SimpleXMLElement($xml);
?>
|
Код: |
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 3: parser error : Start tag expected, '<' not found in C:\xampp\htdocs\index.php on line 3
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: in C:\xampp\htdocs\index.php on line 3
Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ^ in C:\xampp\htdocs\index.php on line 3
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\xampp\htdocs\index.php:3 Stack trace: #0 C:\xampp\htdocs\index.php(3): SimpleXMLElement->__construct('???') #1 {main} thrown in C:\xampp\htdocs\index.php on line 3
|
Я не очень хорошо разбираюсь в PHP. Если не трудно ткните носом куда смотреть. |
|
Вернуться к началу |
|
|
Anderson
Завсегдатай
Зарегистрирован: 08.07.2006 Сообщения: 642 Откуда: localhost
|
|
|
|
simbir, у тебя в коде ты дважды создаешь парсер для XML, поэтому и вылетает. Cделай так:
Код: |
<?php
// Читаем XML с файла...
$xmlData = file_get_contents('offers.xml');
// Парсим его в PHP-шный объект
$data = new SimpleXMLElement($xmlData);
// Смотрим, что там
var_dump($data);
?> |
_________________ ArchLinux + Enlightenment 17 (E17) |
|
Вернуться к началу |
|
|
simbir
Зарегистрирован: 19.10.2010 Сообщения: 9
|
|
|
|
Anderson писал(а): |
simbir, у тебя в коде ты дважды создаешь парсер для XML, поэтому и вылетает. Cделай так:
Код: |
<?php
// Читаем XML с файла...
$xmlData = file_get_contents('offers.xml');
// Парсим его в PHP-шный объект
$data = new SimpleXMLElement($xmlData);
// Смотрим, что там
var_dump($data);
?> |
|
Так получилось. Но при переборе в цикле опять возникает ошибка.
Код: |
<?php
// Читаем XML с файла...
$xmlData = file_get_contents('offers.xml');
// Парсим его в PHP-шный объект
$data = new SimpleXMLElement($xmlData);
// Смотрим, что там
foreach ($data->ПакетПредложений->Предложения->Предложение as $xxx) {
echo $xxx->Наименование ;
}
?>
|
Ошибка
Код: |
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\index.php on line 9
|
Это не из-за использовании русских символов она появляется ? |
|
Вернуться к началу |
|
|
|
|
 Главная страница сайта
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|