hi,

I have a PHP script which sends a authorisation request to a Servlet and
receives a response in XML format. I have also created a parser (using both
DOM as well as SAX) for parsing the output.

My problem: The parser takes in input from an external xml file but the
output from the servlet needs to be dynamically fed into the parser
something like this:


phpcomm.php

<?php


include_once ('xmlcommparser1.php');
---
---
---
$xmldata = $sysCurlReq->getSysCurlResp();
$appData = new XmlAppData ($xmldata);
//print_r($appData->appArray) // display array contents

?>

$xmldata contains the output which is sent directly to the parser
[B]"xmlcommparser1.php"[/B]


The xmlcommparser1.php is not working.. I am trying to convert the parser
into form of a class with a function which receives $xmldata...

I am pasting the parser code below if anyone wants a look.. wud appreciate a
lot if anyone can figure out where I am going wrong!

TIA,
sandeep


xmlcommparser1.php



<?php
class XmlAppData {
  var $appArray;
  var $xmlData;
  var $xml_parser;
var $depth = array();

 function XmlAppData($xmldata) {
    $this->xmlData = $xmldata;
   $this->xml_set_element_handler();
  }


//$file = "c:\apache\htdocs\a.xml";


function startElement($parser, $name, $attrs) {
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        print "  ";
    }
  //  print "$name\n";
//      print "$data";
    $depth[$parser]++;
}


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

var $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)));
    }


        print "$data";
}
xml_parser_free($xml_parser);
?> 

Reply via email to