Модераторы: Aliance, IZ@TOP, SamDark, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> парсинг xls файла 
:(
    Опции темы
Digo
Дата 24.8.2012, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 187
Регистрация: 30.9.2004
Где: Ростов на Дону

Репутация: нет
Всего: нет



Здравствуйте,

есть файл xml из 1с он немного по другой логике построен, все идет скопом а не разбито по элементам
Код

<?xml version="1.0" encoding="UTF-8" ?> 
 <Book>
<Ucheniki>
  <Kod>000000001</Kod> 
  <ID>0015648978</ID> 
  <Flag>1</Flag> 
  <Familia>Жуков</Familia> 
  <Imia>Александр</Imia> 
  <DataRogdenia /> 
  <Kod>000000002</Kod> 
  <ID>0012156456</ID> 
  <Flag>1</Flag> 
  <Familia>Аксёнов</Familia> 
  <Imia>Александр</Imia> 
  <DataRogdenia /> 
  <Kod>000000003</Kod> 
  <ID>0016466463</ID> 
  <Flag>0</Flag> 
  <Familia>Цветков</Familia> 
  <Imia>Александр</Imia> 
</Ucheniki>
</Book>


пытаюсь работать через simplexml, использую simplexml_load_file получаю объект, как с ним наиболее оптимально работать? Нужно занести данные в базу.

пытаюсь использовать такую конструкцию, 
Код

foreach ($book->Ucheniki as $value){ 
   
    echo '-------'.$value->Kod;
    echo '-------'.$value->ID;

}

но получаю только 1 элемент, через for пробовал обходить но рчень сильно тормозит. Как с таким оптимальнее работать? заранее спасибо!)








--------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс )
PM MAIL WWW ICQ   Вверх
krypt3r
Дата 24.8.2012, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 2
Всего: 16



Так попробуйте
Код

<?php
  $xml = simplexml_load_file ('44.xml');

  $uch = $xml->Ucheniki;
  $cnt = $uch->Kod->count ();
  for ($i = 0; $i < $cnt; $i++) {
    echo $uch->Kod[$i], "\n";
    echo $uch->ID[$i], "\n";
  }
?>

XML у вас изначально неверная. Ее бы лучше привести к виду
Код

<?xml version="1.0" encoding="UTF-8" ?> 
<Book>
<Uchenik>
  <Kod>000000001</Kod> 
  <ID>0015648978</ID> 
  <Flag>1</Flag> 
  <Familia>Жуков</Familia> 
  <Imia>Александр</Imia> 
  <DataRogdenia />
</Uchenik>
<Uchenik> 
  <Kod>000000002</Kod> 
  <ID>0012156456</ID> 
  <Flag>1</Flag> 
  <Familia>Аксёнов</Familia> 
  <Imia>Александр</Imia> 
  <DataRogdenia />
</Uchenik>
<Uchenik> 
  <Kod>000000003</Kod> 
  <ID>0016466463</ID> 
  <Flag>0</Flag> 
  <Familia>Цветков</Familia> 
  <Imia>Александр</Imia> 
</Uchenik>
</Book>

PM MAIL   Вверх
Digo
Дата 24.8.2012, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 187
Регистрация: 30.9.2004
Где: Ростов на Дону

Репутация: нет
Всего: нет




По формату файла, к сожалению мне в таком формате передают, сильно ли это будет влиять на скорость  разбора и работы при довольно больших файлах в несколько тысяч элементов?

ваш код работает единственное в 5 строке  $cnt = $uch->Kod->count (); - выдает ошибку, поменял на    $cnt = count($uch->Kod); работает, но не знаю с точки зрения производительности правильно ли написал.

--------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс )
PM MAIL WWW ICQ   Вверх
Google
  Дата 23.9.2017, 08:31 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0925 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.