Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Парсинг xml

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
simbir




Зарегистрирован: 19.10.2010
Сообщения: 9

СообщениеДобавлено: Пт Июл 19, 2013 12:40 pm    Заголовок сообщения: Парсинг xml
Ответить с цитатой

Существует ли возможность в 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

СообщениеДобавлено: Вс Июл 21, 2013 11:40 am    Заголовок сообщения:
Ответить с цитатой

Конечно, можно: http://php.net/manual/en/book.simplexml.php
А вот отличная инструкция: http://www.php.net/manual/en/simplexml.examples-basic.php
_________________
ArchLinux + Enlightenment 17 (E17)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение anderson.dunai@gmail.com Моб. телефон ICQ Number
simbir




Зарегистрирован: 19.10.2010
Сообщения: 9

СообщениеДобавлено: Пн Июл 22, 2013 8:54 am    Заголовок сообщения:
Ответить с цитатой

Anderson писал(а):
Конечно, можно: http://php.net/manual/en/book.simplexml.php
А вот отличная инструкция: http://www.php.net/manual/en/simplexml.examples-basic.php


Как только начинаю использовать скрипты из примеров вылетает ошибка.

Код:

<?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

СообщениеДобавлено: Ср Июл 24, 2013 9:35 am    Заголовок сообщения:
Ответить с цитатой

simbir, у тебя в коде ты дважды создаешь парсер для XML, поэтому и вылетает. Cделай так:

Код:
<?php

// Читаем XML с файла...
$xmlData = file_get_contents('offers.xml');

// Парсим его в PHP-шный объект
$data = new SimpleXMLElement($xmlData);

// Смотрим, что там
var_dump($data);

?>

_________________
ArchLinux + Enlightenment 17 (E17)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение anderson.dunai@gmail.com Моб. телефон ICQ Number
simbir




Зарегистрирован: 19.10.2010
Сообщения: 9

СообщениеДобавлено: Ср Июл 24, 2013 11:05 am    Заголовок сообщения:
Ответить с цитатой

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

Это не из-за использовании русских символов она появляется ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис