Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вытащить данные из XML файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
gheka
Отправлено: 26 Марта, 2011 - 21:26:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Подскажите как вытащить данные из XML файлаэ
Я вытаскиваю таким методам:

PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = simplexml_load_file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://www.php.ru');
  3.  
  4. echo '<PRE>'; //
  5.                      // Просмотр с ключами
  6. print_r($xml); //
  7.          
  8. foreach ($xml as $k => $r)
  9. {
  10.         echo $k['tcy']['value'];
  11.        
  12. }
  13.  


Мне нужно вытащить значения VALUE перепробовал всё никак не получается кто знает подскажите?
 
 Top
Мелкий Супермодератор
Отправлено: 26 Марта, 2011 - 21:37:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




simplexml возвращает объект, и обращаться к нему надо как к объекту. См. примеры использования.


-----
PostgreSQL DBA
 
 Top
gheka
Отправлено: 27 Марта, 2011 - 09:57:36
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Мелкий пишет:
simplexml возвращает объект, и обращаться к нему надо как к объекту. См. примеры использования.


Не получается я пробовал вот таким методам:

PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = simplexml_load_file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://www.php.ru');
  3.  
  4. echo '<PRE>';
  5.  
  6. print_r($xml);
  7.          
  8. foreach ($xml as $k => $r)
  9. {
  10.         echo $r -> tcy;
  11.         echo $r -> tcy -> value;
  12. }
  13.  


Таким запросом ничего не выводит. Пробовал другие верянты но выводит набор букв но не то что нужно.

Может я делаю что то не то?
 
 Top
Мелкий Супермодератор
Отправлено: 27 Марта, 2011 - 11:46:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




var_dump($xml->tcy['value']);


-----
PostgreSQL DBA
 
 Top
gheka
Отправлено: 27 Марта, 2011 - 12:18:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Мелкий пишет:
var_dump($xml->tcy['value']);


Спасибо то что нужно.

сейчас он получает:

object(SimpleXMLElement)#4 (1) { [0]=> string(3) "240" }

Можно как ни будь преобразовать эту строку в текст чтобы после этого обработать строковыми функциями?
Мне нужно получить число 240.

(Отредактировано автором: 27 Марта, 2011 - 13:53:45)

 
 Top
JustUserR
Отправлено: 28 Марта, 2011 - 00:06:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




gheka пишет:
Можно как ни будь преобразовать эту строку в текст чтобы после этого обработать строковыми функциями? Мне нужно получить число 240.
Осуществление включения функциональных объектов для поддержания взаимодействия с требуемыми XML-составляющими информационных полей в целевом web-приложении, обеспечиваемое на основании включения функциональных объектов simplexml в понеженном базовом элементном уровне трактования, предполагает выполнения целевых операций с ассоциированной структурой данных, на основании осуществления включения операций выделения идентифицированной вложенной составляющей инкапсулированного объекта, описания которой производится во внешнем базовом уровне элементного трактования, что позволяет обеспечивает описаний действия для взаимодействия с локальным информационным наполнением XML-документа в оригинальной декларации исполняемого потока


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Мелкий Супермодератор
Отправлено: 28 Марта, 2011 - 00:42:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




gheka пишет:
Мне нужно получить число 240.

см описание var_dump, а именно - что он берёт на входе и что выводит.
Говоря человеческим языком, искомое значение 240 (и только оно) находится в переменной $xml->tcy['value']. (возможно, в $xml->tcy['value'][0] или где-то рядом, проверять лениво)


-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 28 Марта, 2011 - 01:17:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Мелкий пишет:
См описание var_dump, а именно - что он берёт на входе и что выводит
В действительности осуществление использование предполагаемого функционального объекта, позволяет производить локальное формирование ассоциированного информационного поля в повышенном базовом элементном уровне трактования, на основании осуществления анализа стабилизированной формы сопоставленного целевого объекта в области определения потока исполнения; таким образом для осуществления извлечения целевого информационног поля, на основании выполнения непосредственного транспортирования оригинальног информационного поля из пониженного уровня базового инкапсуляциноого уровня трактования, необходимо использование конструкции в виде $xml->tcy->value


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
gheka
Отправлено: 28 Марта, 2011 - 17:44:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




JustUserR
Мелкий

Ни то не другое не помогает всё перепробовал ничего не меняется иногда только при подставке значении выводит NULL



Выводит - object(SimpleXMLElement)#4 (1) { [0]=> string(3) "240" }


Выводит - object(SimpleXMLElement)#2 (1) { [0]=> string(3) "240" }

PHP:
скопировать код в буфер обмена
  1. $r = var_dump($xml->tcy['value'][1]) // И так далее 1,2,3,


Выводит ошибку - Warning: main() [function.main]: Cannot add element value number 3 when only 0 such elements exist in .


Выводит - object(SimpleXMLElement)#4 (0) { }

Прочёл много чего но нигде не описано как нужно именно работать с этим.
В описании функции var_dump ничего конкретного не описано.

Кто знает выручайте очень нужно.

(Отредактировано автором: 28 Марта, 2011 - 17:47:46)

 
 Top
Мелкий Супермодератор
Отправлено: 28 Марта, 2011 - 17:51:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




var_dump выводит всю информацию, которую может собрать, о переменной. Чем крайне полезна для отладки.

В вашем же случае значение 240 содержит переменная $xml->tcy['value'][0]. Если требуется сохранить её значение в другую переменную, то это так и выглядит:


-----
PostgreSQL DBA
 
 Top
gheka
Отправлено: 28 Марта, 2011 - 18:22:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Мелкий


Огромное спасибо а я то мучался с функцией var_dump. А надо было то всего лишь найти значения с её помощью.

После чего убрать из запроса var_dump и вывести на прямую:



Может кому будет полезен этот верянт вывода ТИЦ сайта показан ниже.

PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = simplexml_load_file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://www.php.ru');
  3.  
  4. $r = $xml->tcy['value'][0] . '<br /><br />';
  5.  
  6. echo $r; // выводит ТИЦ число
  7.  
  8.  



Есть другие верянты вывода ТИЦ но этот думаю самый оптимальный в php 5 и уменьшенный код чем в других верянтах.

(Отредактировано автором: 28 Марта, 2011 - 18:24:35)

 
 Top
JustUserR
Отправлено: 29 Марта, 2011 - 21:46:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




gheka пишет:
Выводит - object(SimpleXMLElement)#4 (1) { [0]=> string(3) "240" }
В качесвтве унифицированной схемы для осуществления фунционирования предполагаемой группы объектов для обеспечения извлечения ассоциированных информационных полей, проведенимых на основании оригинального информационного поля в повышенном базовом информационном элементном уровне трактования, является применение следующем схемы идентификации выбираемых ассоциированных объектов: для определения экспрессиональной структуры целевого XML-элемента необходимо осуществление пути вложения относительно одиночных каскадных объектов, а также включения индексируемых параметров для целевых групповых перечисляемых значений


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB