Function xml_file ($ filename, $ keyid = 'errorentry ')
{
$ String = implode ('', file ($ filename ));
Return xml_str ($ string, $ keyid );
}
Function xml_str ($ string, $ keyid = 'errorentry ')
{
$ Parser = xml_parser_create ();
Xml_parser_set_option ($ parser, XML_OPTION_CASE_FOLDING, 0 );
Xml_parser_set_option ($ parser, XML_OPTION_SKIP_WHITE, 1 );
Xml_parse_into_struct ($ parser, $ string, $ values, $ tags );
Xml_parser_free ($ parser );
$ Tdb = array ();
Foreach ($ tags as $ key => $ val)
{
If ($ key! = $ Keyid) continue;
$ Molranges = $ val;
For ($ I = 0; $ I <count ($ molranges); $ I + = 2)
{
$ Offset = $ molranges [$ I] + 1;
$ Len = $ molranges [$ I + 1]-$ offset;
$ Tdb [] = xml_arr (array_slice ($ values, $ offset, $ len ));
}
}
Return $ tdb;
}
Function xml_arr ($ mvalues)
{
$ Arr = array ();
For ($ I = 0; $ I <count ($ mvalues); $ I ++)
{
$ Arr [$ mvalues [$ I] ['tag'] = $ mvalues [$ I] ['value'];
}
Return $ arr;
}