Jump to content

Parsing XML


dreado

Recommended Posts

Hi ober

No, I didn’t create the XML file, it’s one provided by another site.

Not sure if I have seen that manual or not, got a feeling I have but didn’t understand it.

What I’d like to achieve is to display the data from the XML feed in a page of my own, so I can style it to look how I want.
Link to comment
https://forums.phpfreaks.com/topic/5369-parsing-xml/#findComment-19484
Share on other sites

  • 3 weeks later...
[!--quoteo(post=357174:date=Mar 22 2006, 02:56 AM:name=kenrbnsn)--][div class=\'quotetop\']QUOTE(kenrbnsn @ Mar 22 2006, 02:56 AM) [snapback]357174[/snapback][/div][div class=\'quotemain\'][!--quotec--]
Take a look at [a href=\"http://minixml.psychogenic.com\" target=\"_blank\"]http://minixml.psychogenic.com[/a] which is a fairly light weight class for parsing XML files into an array.

Ken
[/quote]

Thanks for the link, but in their code, I can't see where you'd put the url of the feed.

Maybe someone can look at the code I initially used and tell me what might be wrong with it (it generates nothing but a blank page).

[code]<?php

function parseIntoArray( $url )
{
    $data = file_get_contents( $url );
    $xml_parser = xml_parser_create();
    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);
      }
    }
    return $params;
}

function getPlayerData( $url )
{
    $arrayData = parseIntoArray( $url );
    return $arrayData[ "PLAYERDATA" ];
}

$playerData = getPlayerData( "http://bf1942.gametrack.org/player.php?id=2297153&format=xml" );

echo "<pre>";
print_r( $playerData );
echo "</pre>";
?>

<?php echo $playerData["PLAYER"];?> <br />
<?php echo $playerData["GRADE"];?>
[/code]
Link to comment
https://forums.phpfreaks.com/topic/5369-parsing-xml/#findComment-24977
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.