Тема: xml 2 db
Показать сообщение отдельно
Старый 09.09.2005, 17:59
Artem Brigert вне форума Посмотреть профиль Найти все сообщения от Artem Brigert
  № 13  
Ответить с цитированием
Artem Brigert
Banned

Регистрация: Sep 2001
Сообщений: 6,162
wot smotri
PHP код:
<?php
$file 
'n1840411966.txt';
$stack = array();

function 
startTag($parser$name$attrs)
{
   global 
$stack;
   
$tag=array("name"=>$name,"attrs"=>$attrs); 
   
array_push($stack,$tag);
 
}

function 
cdata($parser$cdata)
{
   global 
$stack,$i;
  
   if(
trim($cdata))
   {   
       
$stack[count($stack)-1]['cdata']=$cdata;   
   }
}

function 
endTag($parser$name)
{
   global 
$stack
   
$stack[count($stack)-2]['children'][] = $stack[count($stack)-1];
   
array_pop($stack);
}

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startTag""endTag");
xml_set_character_data_handler($xml_parser"cdata");

$data xml_parse($xml_parser,file_get_contents($file));
$allow "<id><storyid><pubdate><enddate><language><company><branch><wkn><isin><fair><category><related><title><teaser><author><text><media>";
$data strip_tags($data$allow);
$data htmlspecialchars($dataENT_QUOTES);


if(!
$data) {
   die(
sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}

xml_parser_free($xml_parser);

print(
"<pre>\n");
print_r($stack);
print(
"</pre>\n");
?>

rabotaet


eli w usle <text> <a href ..> </text> to nerabotaet