XmlBase.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. function getValue($value,$CutXml)
  3. {
  4. $key = $value;
  5. if (strpos($value, "-")) $value = substr($value, 0, strpos($value, "-"));
  6. $str1 = "<".$value;
  7. $str2 = "</".$value;
  8. $start_pos = strpos($CutXml, $str1);
  9. if ($start_pos > 0){
  10. $start_pos += strlen($str1);
  11. $CutXml = substr($CutXml, $start_pos);
  12. $end_pos = strpos($CutXml, $str2);
  13. $resValue = substr($CutXml, strpos($CutXml,">")+1, $end_pos-strpos($CutXml,">")-1);
  14. }
  15. return $resValue;
  16. }
  17. function parseMol($mvalues,$mretype=0)
  18. {
  19. if($mvalues[0]["type"]=="open")
  20. {
  21. for ($i=1; $i < count($mvalues); $i++)
  22. {
  23. $key=$mvalues[$i]["tag"];
  24. if(!$mretype)$mol[$key][] = $mvalues[$i]["value"];
  25. else{
  26. $arr["value"] = $mvalues[$i]["value"];
  27. if(isset($mvalues[$i]["attributes"]))
  28. $arr["attributes"] = $mvalues[$i]["attributes"];
  29. $mol[$key][] = $arr;
  30. }
  31. }
  32. }
  33. return $mol;
  34. }
  35. function XMLtoArray($values,$tags,$item,$parsetype=0)
  36. {
  37. foreach ($tags as $key=>$val)
  38. {
  39. if($key == $item)
  40. {
  41. $molranges = $val;
  42. $offset = $molranges[0];
  43. $len = $molranges[1] - $offset;
  44. $data=parseMol(array_slice($values, $offset, $len),$parsetype);
  45. }
  46. }
  47. return $data;
  48. }
  49. function XMLgetValue($values,$tags,$item)
  50. {
  51. foreach ($tags as $key=>$molranges)
  52. {
  53. if($key == $item)
  54. {
  55. for($i=0;$i<$num;$i++)
  56. $data[]=$values[$molranges[$i]]["value"];
  57. }
  58. }
  59. return $data;
  60. }
  61. function toArray($xml,$content="response"){
  62. $parser = xml_parser_create();
  63. xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
  64. xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
  65. xml_parse_into_struct($parser,$xml,$values,$tags);
  66. xml_parser_free($parser);
  67. $dbxml=XMLtoArray($values,$tags,$content);
  68. return $dbxml;
  69. }
  70. ?>