|
|
|
| Здравствуйте, нашел преобразование элементов 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 элемента и если можно как их подсчитать? | |
|
|
|
|
|
|
|
для: l-mariachi
(17.04.2011 в 10:36)
| | Может разобрать на каком-то конкретном примере? У вас XML-файлы большие, можете прикрепить его тут и указать, что вам требуется извлечь? | |
|
|
|
|
|
|
|
для: 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) | |
|
|
|
|
|
|
|
для: l-mariachi
(17.04.2011 в 10:49)
| | Хотите именно разбором XML их получить? Или все-равно, любое средство подойдет, лишь бы приводило к конечной цели? | |
|
|
|
|
|
|
|
для: cheops
(17.04.2011 в 10:53)
| | Скорее второй вариант )))) любыми средствами необходимо получить результат | |
|
|
|
|
|
|
|
для: l-mariachi
(17.04.2011 в 10:57)
| | Там помоему авторизация требуется, что-то не могу никак скачать XML-файл, как на него можно выйти? | |
|
|
|
|
|
|
|
для: cheops
(17.04.2011 в 12:11)
| | просто в вашем форуме перенос строки сработал и в середине ссылки образовался пробел,поэтому ссылка не работает,уберите пробел, пожалуйста | |
|
|
|
|
|
|
|
для: 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>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(17.04.2011 в 15:48)
| | А посчитать сколько раз lowerCorner встречается в документе можно такими же несложными методами? | |
|
|
|
|
|
|
|
для: l-mariachi
(18.04.2011 в 00:47)
| | Можно подсчитать количество элементов в результирующем массиве - это и будет количество вхождений тэга
<?php
...
echo count($out[1]);
?>
|
| |
|
|
|