PHP头条
热点:

php 生成xml代码


php 生成xml代码class XMLParser {

 function getChildren($vals, &$i) {

  $children = array();
  if(isset($vals[$i]['value'])) {
   $children['VALUE'] = $vals[$i]['value'];
  }

  while(++$i < count($vals)) {
   switch($vals[$i]['type']) {

   case 'cdata':
    if(isset($children['VALUE'])) {
     $children['VALUE'] .= $vals[$i]['value'];
    } else {
     $children['VALUE'] = $vals[$i]['value'];
    }
    break;

   case 'complete':
    if(isset($vals[$i]['attributes'])) {
     $children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes'];
     $index = count($children[$vals[$i]['tag']]) - 1;

     if(isset($vals[$i]['value'])) {
      $children[$vals[$i]['tag']][$index]['VALUE'] = $vals[$i]['value'];
     } else {
      $children[$vals[$i]['tag']][$index]['VALUE'] = '';
     }
    } else {
     if(isset($vals[$i]['value'])) {
      $children[$vals[$i]['tag']][]['VALUE'] = $vals[$i]['value'];
     } else {
      $children[$vals[$i]['tag']][]['VALUE'] = '';
     }
    }
    break;

   case 'open':
    if(isset($vals[$i]['attributes'])) {
     $children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes'];
     $index = count($children[$vals[$i]['tag']]) - 1;
     $children[$vals[$i]['tag']][$index] = array_merge($children[$vals[$i]['tag']][$index], $this->getChildren($vals, $i));
    } else {
     $children[$vals[$i]['tag']][] = $this->GetChildren($vals, $i);
    }
    break;

   case 'close':
    return $children;
   }
  }
 }

 function getXMLTree($data) {

  $parser = xml_parser_create('UTF-8');
  xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 0);
  xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
  xml_parse_into_struct($parser, $data, $vals, $index);
  xml_parser_free($parser);

  $tree = array();
  $i = 0;

  if(isset($vals[$i]['attributes'])) {
   $tree[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes'];
   $index = count($tree[$vals[$i]['tag']]) - 1;
   $tree[$vals[$i]['tag']][$index] =  array_merge($tree[$vals[$i]['tag']][$index], $this->getChildren($vals, $i));
  } else {
   $tree[$vals[$i]['tag']][] = $this->getChildren($vals, $i);
  }
  return $tree;
 }
}

www.phpzy.comtrue/php/25363.htmlTechArticlephp 生成xml代码 php 生成xml代码class XMLParser { function getChildren($vals, $i) { $children = array(); if(isset($vals[$i]['value'])) { $children['VALUE'] = $vals[$i]['value']; } while(++$i count($vals)) { switch($vals[$i]['type'])...

相关文章

    暂无相关文章

PHP之友评论

今天推荐