Hi,
I have a 3GB XML file thatI need to parse. since the file is too big to read all at once in to an array, I am reading it one line at a time. I need help on how to extract the contents of some tags, say name, address etc. Here is the code:
$file = '../test.xml';
$handle = @fopen($file, "r");
if (!$handle) die('Error opening file');
else{
$go = false;
$lines = '';
$recCt = 0;
$res = array();
while (!feof($handle)) {
$line = fgets($handle);
if (strpos($line, '</lstgSect>')) {
$p = xml_parser_create();
xml_parse_into_struct($p, $lines, $vals, $index);
xml_parser_free($p);
/////////////////////////////////////////////////
//extract the tag value here
//$name = getTagCont($vals, 'name');
//or something similar
/////////////////////////////////////////////////
$go = false;
$lines = '';
$res = array();
}//end if (strpos...
if ($go) { $lines .= $line; }
if (strpos($line, '<lstgSect>')) { $go = true; $recCt++; }
//for testing only
if ($recCt > 3) break;
}//end while
}//end else of if(!handle
The vals array looks like this:
Array ( [0] => Array ( [tag] => LSTGREQ [type] => open [level] => 1 [value] => ) [1] => Array ( [tag] => ALICD [type] => complete [level] => 2 [value] => C ) [2] => Array ( [tag] => LSTGREQ [value] => [type] => cdata [level] => 1 ) [3] => Array ( [tag] => LSTGREQ [value] => [type] => cdata [level] => 1 ) [4] => Array ( [tag] => LACT [type] => open [level] => 2 [value] => ) [5] => Array ( [tag] => LACTCD [type] => complete [level] => 3 [value] => N ) [6] => Array ( [tag] => LACT [value] => [type] => cdata [level] => 2 ) [7] => Array ( [tag] => LACT [value] => [type] => cdata [level] => 2 ) [8] => Array ( [tag] => LACT [type] => close [level] => 2 ) [9] => Array ( [tag] => LSTGREQ [value] => [type] => cdata [level] => 1 ) [10] => Array ( [tag] => LSTGREQ [value] => [type] => cdata [level] => 1 ) [11] => Array ( [tag] => ACTSRCCD [type] => complete [level] => 2 [value] => O ) [12] => Array ( [tag] => LSTGREQ [value] => [type] => cdata [level] => 1 ) [13] => Array ( [tag] => LSTGREQ [value] => [type] => cdata [level] => 1 ) [14] => Array ( [tag] => LCTL [type] => open [level] => 2 [value] => ) [15] => Array ( [tag] => RTY [type] => open [level] => 3 [value] => ) [16] => Array ( [tag] => LSTGSCOPECD [type] => complete [level] => 4 [value] => F ) [17] => Array ( [tag] => RTY [value] => [type] => cdata [level] => 3 ) [18] => Array ( [tag] => RTY [value] => [type] => cdata [level] => 3 ) [19] => Array ( [tag] => RTYCD [type] => complete [level] => 4 [value] => ) [20] => Array ( [tag] => RTY [value] => [type] => cdata [level] => 3 ) [21] => Array ( [tag] => RTY [value] => [type .......