Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Парсинг XML.

Сообщения:  [1-3] 

 
 автор: dima2207   (10.06.2008 в 17:10)   письмо автору
 
   для: elenaki   (10.06.2008 в 11:14)
 

Вы уж простите . но это несовсем то что мне нужно , вот результат работы скрипта , т.е. он парсит только закрывающий тег , а надо что-бы всю информацию захватывал .Включая и <disk used="38" limit="0"/><bandwidth used="561" limit="100000000"/>

Закрыт тег NAME
Закрыт тег DISK
Закрыт тег BANDWIDTH
Закрыт тег SSL
Закрыт тег SSI
Закрыт тег CGI
Закрыт тег PHP
Закрыт тег PRESET
Закрыт тег ELEM
Закрыт тег NAME
Закрыт тег DISK
Закрыт тег BANDWIDTH
Закрыт тег SSI
Закрыт тег CGI
Закрыт тег PHP
Закрыт тег PRESET
Закрыт тег ELEM
Закрыт тег NAME
Закрыт тег DISK
Закрыт тег BANDWIDTH
Закрыт тег SSI
Закрыт тег CGI
Закрыт тег PHP
Закрыт тег PRESET
Закрыт тег ELEM
Закрыт тег NAME
Закрыт тег DISK
Закрыт тег BANDWIDTH
Закрыт тег CGI

   
 
 автор: elenaki   (10.06.2008 в 11:14)   письмо автору
 
   для: dima2207   (10.06.2008 в 00:05)
 

<?
// Имя файла, который будем читать
$file = "test.xml";

$DESCRIPTION_BOOL = false;

$DESCRIPTION_TXT = '';


function startElement($parser, $name, $attrs)
{
global  $DESCRIPTION_BOOL, $DESCRIPTION_TXT;    
if ($name=='DESCRIPTION') $DESCRIPTION_BOOL = true;
}

function endElement($parser, $name)
{
global $DESCRIPTION_BOOL, $DESCRIPTION_TXT;
print "Закрыт тег " . $name . "<br>";                                                                 
if ($name=='DESCRIPTION') {
     $DESCRIPTION_BOOL = false;
     echo "<br>".$DESCRIPTION_TXT."<br>";  
 }
}
                                                      
function characterData($parser, $data)
{
global $DESCRIPTION_BOOL, $DESCRIPTION_TXT;
if (($DESCRIPTION_BOOL == true) && ($data<>'')) $DESCRIPTION_TXT = iconv("UTF-8","windows-1251",$data); else $DESCRIPTION_TXT = '';
}


// Создаем парсер
$xml_parser = xml_parser_create();

// Настраиваем его (не чувствителен к регистру)
//xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);

// Указываем ф-ии обработки начального тега и конечного тега (см. выше)
xml_set_element_handler($xml_parser, "startElement", "endElement");

// Ф-ия обработки данных внутри тега (см. выше)
xml_set_character_data_handler($xml_parser, "characterData");

// Открываем файл
if ( !($fp = fopen($file, "r")) )
{ die("could not open XML input"); }

// Читаем файл и парсингуем
while ($data = fread($fp, 4096))
{
if ( !xml_parse($xml_parser, $data, feof($fp)) )
{
// Сообщение если возникла ошибка парсинга
die( 
sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)) 
);
}
}
// удаляем парсер, он сделал свое дело ;0)
xml_parser_free($xml_parser);
?>

   
 
 автор: dima2207   (10.06.2008 в 00:05)   письмо автору
 
 

Всем привет !
Подскажите как отпарсить нижеследующий пример,и разложить все данные по переменным ?
<?xml version="1.0" encoding="UTF-8"?>
<doc><elem><name>dima2207</name><disk used="38" limit="0"/><bandwidth used="548" limit="100000000"/><ssl/><ssi/><cgi/><php/><preset>custom</preset></elem><elem><name>dod</name><disk used="0" limit="500"/><bandwidth used="0" limit="100000000"/><ssi/><cgi/><php/><preset>1</preset></elem><elem><name>dod123</name><disk used="0" limit="500"/></elem><elem><name>filmi</name><disk used="15" limit="0"/><bandwidth used="11" limit="100000000"/><cgi/><php/><preset>custom</preset></elem><elem><name>hosting</name><disk used="8" limit="0"/><bandwidth used="0" limit="100000"/><ssi/><cgi/><php/><preset>1</preset></elem><elem><name>wolf</name><disk used="0" limit="0"/><bandwidth used="0" limit="100000000"/><preset>custom</preset></elem></doc>

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime