Здравствуйте, Я написала разбор XML документа и хочу его вывести на экран. Имя файла у меня задается через html форму, а потом вызывается с помощью функций Simple XML. К сожалению, при запуске, мне выдается очень много ошибок. XML документ сохранен в кодировке Ansi. В чем может быть проблема? Код (Text): <html> <body> <form action=Otobrajeniye.php method=POST> <input type=text name="filename" value='<?php echo $_POST ['filename'];?>' SIZE=50><BR> <input type=submit name="send" value="Input"> </form></html> </body> <? //$id=$frs; if (!empty($_POST['send'])) { $file=$_POST['filename']; //echo"Вы выбрали данные под номером <b>".$frs."</b><br>"; //echo"Привет = ".$id; $dirpath='D:\\'; $frpath=join('',array($dirpath,$file)); $res = simplexml_load_file($frpath);//загружаем XML файл echo "<h1>"; echo $res->FRAGMENT->TITLE; echo "</h1>"; foreach ($res->children() as $child) { echo "<p>"; if ( $child->getName()=="PICTURE") { foreach($child->attributes() as $attr) { if ($attr->getName()=="SRC") { $pic=iconv("UTF-8","Windows-1251",$attr); $picpath=join('',array($dirpath,$pic)); echo "<p><img src=$picpath></p>"; } } } echo iconv("UTF-8","Windows-1251",$child); echo "</p>"; } } Ошибки следующие: Код (Text): Warning: simplexml_load_file() [function.simplexml-load-file]: file:///D%3A/fr1.xml:3: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xC2 0xE2 0xE5 0xE4 in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: <TITLE>Введение в Компьютерные Технологии</TITLE> in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: file:///D%3A/fr1.xml:4: parser error : error parsing attribute name in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: <PICTURE SRC="1.jpg" ALT="Компьютер" LONGDESK="Изображение компьютера" /PICTURE> in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: file:///D%3A/fr1.xml:4: parser error : attributes construct error in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: <PICTURE SRC="1.jpg" ALT="Компьютер" LONGDESK="Изображение компьютера" /PICTURE> in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: file:///D%3A/fr1.xml:4: parser error : Couldn't find end of Start Tag PICTURE line 4 in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: <PICTURE SRC="1.jpg" ALT="Компьютер" LONGDESK="Изображение компьютера" /PICTURE> in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in T:\home\localhost\UIR-php\Otobrajeniye.php on line 16 Notice: Trying to get property of non-object in T:\home\localhost\UIR-php\Otobrajeniye.php on line 18 Notice: Trying to get property of non-object in T:\home\localhost\UIR-php\Otobrajeniye.php on line 18 Fatal error: Call to a member function children() on a non-object in T:\home\localhost\UIR-php\Otobrajeniye.php on line 20
К сожалению, это не изменило ситуацию. Первая строчка ошибки может и ушла, а вот все остальные остались.
Мой xml документ выглядит следующим образом. Код (Text): <?xml version="1.0" encoding="UTF-8"?> <FRAGMENT ID="1"> <TITLE>Введение в Компьютерные Технологии</TITLE> <PICTURE SRC="1.jpg" ALT="Компьютер" LONGDESK="Изображение компьютера" /> <TEXT>Компьютерные технологии проникают повсеместно. В наше время компьютеры явно или неявно используются во всех сферах деятельности, и потому знание основных принципов использования и взаимодействия с компьютерами является очень важным для каждого человека.</TEXT> </FRAGMENT>. У меня уже все работает, кроме отображения картинки. Хотя картинка находится в той же директории
Хорошим тоном считается писать путь до файлов так: PHP: dirname(__FILE__)."/".$imageName; Вместо: PHP: $picpath=join('',array($dirpath,$pic))
Ваш скрипт согласно дампу находится в: PHP: T:\home\localhost\UIR-php\Otobrajeniye.php А в переменной пути до картинки почему-то указано: PHP: $dirpath='D:\\'; Решение: PHP: $picpath = dirname(__FILE__)."/".$pic; [/quote]
Здесь $dirpath это переменная пути до файла xml. А не до картинки. А картинка находится там же.Просто мне нужно знать, где xml файл лежит, чтобы его отобразить. Но хотя картинка лежит там же, она не отображается вместе с файлом. Извините, что я не уточнила, к чему имеено путь задан. Код (Text): $file=$_POST['filename']; //echo"Вы выбрали данные под номером <b>".$frs."</b><br>"; //echo"Привет = ".$id; $dirpath='C:\Program Files\TopServer 2.1\home\localhost\UIR-php\\'; $frpath=dirname(__FILE__)."/".$file; //$pic="1.jpg"; //$picpath = dirname(__FILE__)."/".$pic; $res = simplexml_load_file($frpath);//загружаем XML файл Просто, если писать то где еще вызывать этот путь? если вызывать вместе с $frpath, выдается ошибка. Просто мне не нужно, чтобы пользователь еще задавал имя картинки, при задавании названия xml файла, нужно чтобы сразу отобразилось вместе с картинкой. Просто ведь пользователь не знает, какая там картинка.