Forum Moderators: coopster

Message Too Old, No Replies

PHP.net xml parser example

PHP.net xml parser example

         

helper22

8:09 pm on Aug 21, 2009 (gmt 0)

10+ Year Member



I need to learn php xml parsing. Example here did not work:
[ca2.php.net...]
I got the main clue to fix it here: [webmasterworld.com...]
With this new post more people can find the fix!
Here the fixed version:

<!--This example from: [ca2.php.net...]
<?php
$file = "test.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
global $depth;
if(!isset($depth[$parser])) $depth[$parser] = 0; // #1
for ($i = 0; $i < $depth[$parser]; $i++) {
echo "&nbsp;"; // #2
}
echo "$name"."<br>"; // #3
$depth[$parser]++;
}

function endElement($parser, $name)
{
global $depth;
$depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
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)));
}
}
xml_parser_free($xml_parser);
?>

eelixduppy

12:39 am on Aug 26, 2009 (gmt 0)



Thanks for sharing your solution....

And Welcome to WebmasterWorld! :)