note 69616 added to function.xml-parse-into-struct
| From: | EladElrom at osu1 dot php dot net | Date: | Tue, 12 Sep 2006 21:14:31 +0000 |
| Subject: | note 69616 added to function.xml-parse-into-struct | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-117079@lists.php.net to get a copy of this message | ||
This is a quick fix for parsing XML from remote URL, some of the example above will work when trying
to parse on your local server without "http://" but not when
trying to parse from remote server using "http://www.URL"...
<?
$file="http://www.URL.com/file.XML";
$xml_parser = xml_parser_create();
$handle = fopen($file, "rb");
$contents = '';
while (!feof($handle)) {
$data .= fread($handle, 8192);
}
fclose($handle);
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$params = array();
$level = array();
foreach ($vals as $xml_elem) {
if ($xml_elem['type'] == 'open') {
if (array_key_exists('attributes',$xml_elem)) {
list($level[$xml_elem['level']],$extra) =
array_values($xml_elem['attributes']);
} else {
$level[$xml_elem['level']] = $xml_elem['tag'];
}
}
if ($xml_elem['type'] == 'complete') {
$start_level = 1;
$php_stmt = '$params';
while($start_level < $xml_elem['level']) {
$php_stmt .= '[$level['.$start_level.']]';
$start_level++;
}
$php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
eval($php_stmt);
}
}
echo "<pre>";
print_r ($params);
echo "</pre>";
?>
----
Server IP: 216.194.113.175
Probable Submitter: 209.10.104.212
----
Manual Page -- http://www.php.net/manual/en/function.xml-parse-into-struct.php
Edit -- https://master.php.net/note/edit/69616
Del: integrated -- https://master.php.net/note/delete/69616/integrated
Del: useless -- https://master.php.net/note/delete/69616/useless
Del: bad code -- https://master.php.net/note/delete/69616/bad+code
Del: spam -- https://master.php.net/note/delete/69616/spam
Del: non-english -- https://master.php.net/note/delete/69616/non-english
Del: in docs -- https://master.php.net/note/delete/69616/in+docs
Del: other reasons-- https://master.php.net/note/delete/69616
Reject -- https://master.php.net/note/reject/69616
Search -- https://master.php.net/manage/user-notes.php