Сервер возвращает xml вида:
<?xml version="1.0" encoding="windows-1251"?><UploadSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<path>ссылка1</path>
<url>ссылка2</url>
</UploadSettings>
Как получить ссылки 1 и 2 с помощью php и SimpleXML? (или чего-нибудь другого)
Попытался читать мануалы - только больше запутался((
Спустя 1 час, 47 минут, 20 секунд (28.12.2008 - 16:16) S(r1pt написал(а):
deleting
Спустя 23 дня, 4 часа, 45 минут, 25 секунд (21.01.2009 - 21:02) AndryG написал(а):
Накой фиг тут Регулярные выражения?!
Первое, что в голову залезло -- DOM.
Не пользовался SimpleXML ...идем на справку DOM ... читать мы не любим - идем сразу в примеры.
http://ua2.php.net/manual/ru/domdocument.loadxml.php
Первое, что в голову залезло -- DOM.
Не пользовался SimpleXML ...идем на справку DOM ... читать мы не любим - идем сразу в примеры.
http://ua2.php.net/manual/ru/domdocument.loadxml.php
Код |
<?php $doc = new DOMDocument(); //ЭТО И СЛЕДУЮЩАЯ - НАШИ $doc->load('book.xml'); echo $doc->saveXML(); // ЭТО ВЫБРОСИТЬ НАФИГ ?> |
Загрузили .. теперь надо добраться до корневого элемента (<UploadSettings>)
http://ua2.php.net/manual/ru/class.domdocument.php
свойство - readonly public DOMElement $documentElement ;
Другими словами ...
Код |
$root = $doc->documentElement; //ПОЛУЧАЕМ КЛАСС DOMELEMENT |
Круто ... мы внутри <UploadSettings> теперь нужно пройти по его дитятям
http://ua2.php.net/manual/ru/class.domnode.php (это родитель класса DOMElement .. именно в нём свойство, которое нас интересует)
public readonly DOMNodeList $childNodes ;
Возвращает класс - список детей
Код |
$child_list = $root->childNodes; |
Смотрим, что за класс-список такой
http://ua2.php.net/manual/ru/class.domnodelist.php
Тю!
Проходим по детятам ...
Код |
foreach($child_list as $child){ //ПЕРЕМЕННАЯ $child у нас класса DOMNode /// идем и читаем http://ua2.php.net/manual/ru/class.domnode.php echo $child->textContent; } |
Всё.
Спустя 14 часов, 15 минут, 29 секунд (22.01.2009 - 11:17) dfsq написал(а):
Нафиг дом в данном случае
Код |
$str = '<?xml version="1.0" encoding="windows-1251"?><UploadSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <path>http://fsdfg.dff</path> <url>http://sdfgsdfgsdf.dfgdf.ddf</url> </UploadSettings>'; $xml = new SimpleXMLElement($str); $url = $xml->xpath('//path'); $url2 = $xml->xpath('//url'); echo $url[0][0].'<br>'; echo $url2[0][0]; |
и кстати, регулярки, часто бывают удобны для не сложного разбора,
Спустя 6 минут, 39 секунд (22.01.2009 - 11:24) dfsq написал(а):
если xml такая простая, то зачем дом и симплXml?
Код |
preg_match('|<path>(.+)</path>|', $str, $arr1); preg_match('|<url>(.+)</url>|', $str, $arr2); echo $arr1[1].'<br>'; echo $arr2[1]; |
ps. на старом форуме блоки [code], по-моему были лучше, выглядело более читаемо, нежели сейчас.