>백엔드 개발 >PHP 튜토리얼 >php 生成xml代码_PHP教程

php 生成xml代码_PHP教程

WBOY
WBOY원래의
2016-07-13 10:58:11749검색

php 生成xml代码class XMLParser {

 function getChildren($vals, &$i) {

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

  while(++$i    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.bkjia.comtruehttp://www.bkjia.com/PHPjc/632011.htmlTechArticlephp 生成xml代码class XMLParser { function getChildren($vals, $i) { $children = array(); if(isset($vals[$i]['value'])) { $children['VALUE'] = $vals[$i]['value']; } while(++$i co...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.