Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбор Xml c geocode-maps.yandex.ru
 
 автор: l-mariachi   (17.04.2011 в 10:36)   письмо автору
 
 

Здравствуйте, нашел преобразование элементов xml в массив на php
Вроде должно работать, но вот нехватка знаний не дает воспользоваться скриптом
Вот собственно сам скрипт:

<?php

function XMLtoArray()
{
    
$Xml = new DomDocument();
    
$Xml->load('file.xml');
    
$Root $Xml->documentElement;
    return (
$Root->childNodes->length) ? array($Root->localName => ProcessNode($Root)) : array($Root->localName => $Root->nodeValue);
}

function 
ProcessNode($Node)
{
    
$Array = array();
    foreach(
$Node->childNodes as $ChildNode)
    {
        if (
$ChildNode->nodeType != XML_ELEMENT_NODE) continue;
        
$Array[$ChildNode->localName] = ($ChildNode->childNodes->length) ? ProcessNode($ChildNode) : $Node->nodeValue;
    }
    return 
$Array;
}

?>

Люди покажите пожалуйста пример как им пользоваться?
Именно как мне получить содержимое определенного xml элемента и если можно как их подсчитать?

  Ответить  
 
 автор: cheops   (17.04.2011 в 10:45)   письмо автору
 
   для: l-mariachi   (17.04.2011 в 10:36)
 

Может разобрать на каком-то конкретном примере? У вас XML-файлы большие, можете прикрепить его тут и указать, что вам требуется извлечь?

  Ответить  
 
 автор: l-mariachi   (17.04.2011 в 10:49)   письмо автору
 
   для: cheops   (17.04.2011 в 10:45)
 

Вот отсюда беру xml
http://geocode-maps.yandex.ru/1.x/?geocode=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,+%D0%A2%D0%B2%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F+%D1%83%D0%BB%D0%B8%D1%86%D0%B0,+%D0%B4%D0%BE%D0%BC+7&key=ADe6mE0BAAAADyKOHgIByDmeyZXW0N0OJu4 R7lMmwH-zcysAAAAAAAAAAADvHTUuoaO2tEg_Y5mupDMj36PiTg==

Как подсчитать кол-во координат (lowerCorner) и соответственно вывести именно их (lowerCorner)

  Ответить  
 
 автор: cheops   (17.04.2011 в 10:53)   письмо автору
 
   для: l-mariachi   (17.04.2011 в 10:49)
 

Хотите именно разбором XML их получить? Или все-равно, любое средство подойдет, лишь бы приводило к конечной цели?

  Ответить  
 
 автор: l-mariachi   (17.04.2011 в 10:57)   письмо автору
 
   для: cheops   (17.04.2011 в 10:53)
 

Скорее второй вариант )))) любыми средствами необходимо получить результат

  Ответить  
 
 автор: cheops   (17.04.2011 в 12:11)   письмо автору
 
   для: l-mariachi   (17.04.2011 в 10:57)
 

Там помоему авторизация требуется, что-то не могу никак скачать XML-файл, как на него можно выйти?

  Ответить  
 
 автор: l-mariachi   (17.04.2011 в 14:46)   письмо автору
 
   для: cheops   (17.04.2011 в 12:11)
 

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

  Ответить  
 
 автор: cheops   (17.04.2011 в 15:48)   письмо автору
 
   для: l-mariachi   (17.04.2011 в 14:46)
 

Есть такое дело. Можно начать отталкиваться от следующего скрипта
<?php
  $filename 
"http://geocode-maps.yandex.ru/1.x/...==";
  
$xml file_get_contents($filename);
  
$pattern "|<lowerCorner>(.*?)</lowerCorner>|is";
  
preg_match_all($pattern$xml$out);
  echo 
"<pre>";
  
print_r($out[1]);
  echo 
"</pre>";
?>

  Ответить  
 
 автор: l-mariachi   (18.04.2011 в 00:47)   письмо автору
 
   для: cheops   (17.04.2011 в 15:48)
 

А посчитать сколько раз lowerCorner встречается в документе можно такими же несложными методами?

  Ответить  
 
 автор: cheops   (18.04.2011 в 01:24)   письмо автору
 
   для: l-mariachi   (18.04.2011 в 00:47)
 

Можно подсчитать количество элементов в результирующем массиве - это и будет количество вхождений тэга
<?php
  
...
  echo 
count($out[1]);
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования