XML Php


Parsing With Expat and PHP

     $cdata = '';
     function start_elem ($parser, $name, $attrs) {
          switch ($name) {
               case ("personal"):
                    print ("

"); break;
               case ("name"):
                    print (""); break;
               case ("address"):
                    print ("

Address\n"); break;
               case ("tel"):
                    print ("

Telephone\n"); break;
               case ("contact"):
               case ("name"):
               case ("first"):
               case ("middle"):
               case ("last"):
               case ("title"):
               case ("employer"):
               case ("dob"):
                    break;
               default:
                    print ("Warning: Unknown tag '$name'"); break;
          }
     }
     function end_elem ($parser, $name) {
          global $cdata;
          $cdata = trim ($cdata);
          switch ($name)
          {
               case ("personal"):
                    print ("

\n\n"); break;
               case ("name"):
                    print ("
\n"); break;
               case ("first"):
                    print ($cdata . " "); $cdata = ""; break;
               case ("middle"):
                    print ($cdata . " "); $cdata = ""; break;
               case ("last"):
                    print ("$cdata"); $cdata = ""; break;
               case ("title"):
                    print ("Title: $cdata\n"); $cdata = ""; break;
               case ("employer"):
                    print ("Company: $cdata\n"); $cdata = ""; break;
               case ("dob"):
                    print ("Birthdate: $cdata\n"); $cdata = ""; break;
               default:
                    print ("Warning: Unknown element '$name'"); break;
          }
     }
     function cdata ($parser, $data) {
          global $cdata;
          $cdata .= $data;
     }
     $file = "contact.xml";
     $parser = xml_parser_create ();
     xml_parser_set_option ($parser, XML_OPTION_CASE_FOLDING, false);
     xml_set_element_handler ($parser, "start_elem", "end_elem");
     xml_set_character_data_handler ($parser, "cdata");
     $fp = fopen ($file, "r");
     if (!$fp){
          die ("Couldn't open $file for reading");
     }
     while ($xml_input = fread ($fp, 2048)) {
          $ok = xml_parse ($parser, $xml_input, feof ($fp));
          if (!$ok)
               die (sprintf ("Error in $file: '%s' at line %d",
                             xml_error_string (xml_get_error_code ($parser)),
                             xml_get_current_line_number ($parser)));
     }
     xml_parser_free ($parser);
?>


/*

     
          
               J
               J
               J
          

          Manager
          National Company
          1951-02-02
     


*/