Jump to content

retreiving xml data


burge124

Recommended Posts

hi, i have this piece of code that reads an xml document and echos the content of each CDATA.

 

<?php

//Initialize the XML parser
$parser=xml_parser_create();

//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
  {
  switch($element_name)
    {
    case "NOTE":
    echo "-- Note --<br />";
    break; 
    case "TO":
    echo "To: ";
    break; 
    case "FROM":
    echo "From: ";
    break; 
    case "HEADING":
    echo "Heading: ";
    break; 
    case "BODY":
    echo "Message: ";
    }
  }

//Function to use at the end of an element
function stop($parser,$element_name)
  {
  echo "<br />";
  }

//Function to use when finding character data
function char($parser,$data)
  {
  echo $data;
  }

//Specify element handler
xml_set_element_handler($parser,"start","stop");

//Specify data handler
xml_set_character_data_handler($parser,"char");

//Open XML file
$fp=fopen("test.xml","r");

//Read data
while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or 
  die (sprintf("XML Error: %s at line %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }

//Free the XML parser
xml_parser_free($parser);

?>

 

how can i then assign each echoed output to a variable so that i can later add that into the database/manipulate?

 

many thanks ian

Link to comment
https://forums.phpfreaks.com/topic/96432-retreiving-xml-data/
Share on other sites

You could store them in an array. I wouldn't normally propose globals but not much choice here

<?php
$mydata = array();

...

//Function to use when finding character data
function char($parser,$data)
  {
  global $mydata;

  $mydata[] = $data;
  echo $data;
  }

  ...

?>

Link to comment
https://forums.phpfreaks.com/topic/96432-retreiving-xml-data/#findComment-493580
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.