Конец строки в XML

Andrey48

Новичок
Конец строки в XML

Суть такая. Мне нужно обработать вот эти данные:
http://www.timezero.ru/res.xml

Simplexml отказывается с ними работать, так как(как я понял) в конце строки возникает синтаксическая ошибка - лишние данные.

Как можно обойти эту ошибку, игнорировать конец строки и считать следующую?
 

slach

Новичок
вообще то ошибка там другая

"unexpected start-tag (root element already specified)"


они тебе вообще невалидный XML отдают
1) отсутсвует XML делкарация
2) корневым узлом может быть только ОДИН тег

попробуй с помощью XMLReader обработать
 

Andrey48

Новичок
хм... в принципе понял, а возможно каким то образом решить эту проблему? просто там из-за меня никто ничего переделывать не будет =)
 

tashkentchi

Новичок
Пусть $xml содержит твою невалидную хмлину. Тогда

$xml = '<?xml version="1.0"?><root>' . $xml . '</root>';
 

Andrey48

Новичок
Мде. Это не то.

$xml = simplexml_load_file('http://www.timezero.ru/res.xml');

Ошибка выдается при вызове этой функции, и она требует файл. Так что конкатинация здесь не катит =(
 

slach

Новичок
Andrey48
блин, ну что за лентяи пошли, вынь мозг из ЖОПЫ...
PHP:
<?php
$xml = simplexml_load_string('<?xml version="1.0"?><root>' . file_get_contents('http://www.timezero.ru/res.xml') . '</root>');
var_dump($xml);
?>
 

Andrey48

Новичок
хех спсасибо!
Эта функция для меня открытие
file_get_contents

-~{}~ 13.03.09 10:09:

Я уже с ума схожу, никак мне этот сипплхмл не дается =)

<?php
$xml = simplexml_load_string('<?xml version="1.0"?><root>' . file_get_contents('http://www.timezero.ru/res.xml') . '</root>');
echo $xml->root->s["shop"]; // ничего не выводит а по идее должен принять значение "New Moscow Shop"
?>

Хочу получить значение shop - никак не выходит! Помогите люди добрые =)
 

slach

Новичок
Александр? ты чего тупишь, топик прочитай уже??? ;) ладно???
там уже все сказали... и код готовый дали

Andrey48
еще раз ВЫНЬ МОЗГИ из ЖОПЫ
s - такого тега НЕТ
есть S

причем их там МНОГО
соответветсвенно из КАКОГО мануала ты взял что $xml->root->s['shop'] должен выводить чтото что тебе надо? PHP никогда зачатками телепатии не обладал

кроме того root вообще указывать не имеет смысла
он всегда один

PHP:
<?php
$xml = simplexml_load_string('<?xml version="1.0"?><root>' . file_get_contents('http://www.timezero.ru/res.xml') . '</root>');
foreach($xml->S as $S) {
	echo $S['shop'];
}
?>
КОРОЧЕ, оставь свои фантазии, иди и кури RTFM
я надеюсь это ТВОЕ ПОСЛЕДНЕЕ сообщение в этом топике

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

Andrey48

Новичок
АХАХА, Всю жизьнь меня бы так чихвостили и делали бы за меня работу =)
Сори за регистр - опечатался, а вот про root спасибо, просто в каком-то примере выдел что корневой элемент указывали...
 

slach

Новичок
ну глядишь такими темпами ты еще спросишь "а что такое XPath"
 

Andrey48

Новичок
slach Я пару дней назад узнал что такое пхп, что ты от меня хочешь =)
 
Сверху