root=$root;/초기 루트 요소$this->parser=xmlparser_create();//해석 대상 xml 생 성set_object(&$this->parser,&$this);//설정 대상 xmlset_element_handler($this->parser,"tag_on","tag_off");//원소 관리 함수 xml 설정set_character_data_handler($this->parser,"getdata"); //데이터 관리 이벤트 xml 설정parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); //대소 문자 if(fileexists($filename)//파일 을 찾 았 습 니까?{/$fp=fopen($filename,"r")을 찾 습 니 다.//읽 기 전용$c = fread($fp,filesize($filename)); //데이터 읽 기 fclose($fp);/$this->parse($c)닫 기;/설명 대상 설정}else{echo"ooooo";//!?!디 버 깅 에 사용 할 것 같 습 니 다.else 를 제거 하 십시오}function parse($data)/해석 함수{xmlparse($this->parser,$data); }function tag_on($parser,$tag,$attributes)//요소 트리거 함수{$this->on=true;/$this->tags=$tag;/echo $tag;}function tag_off($parser,$tag)//원소 결 소 함수{$this->on=false;/원소 결 소}function getdata($parser,$cdata)//원소{if($this->on&&$this->tags!=$this->root){//검증 하 는 것 이 좋 습 니 다.(현재 요소 의 시작 이 며 루트 요소 가 아 닙 니까?)$this->Data[$this->tags]=trim($cdata); // 관건 이 야!!탭 으로 배열 표를 만 들 고 이 배열 요소 에 데 이 터 를 지불 합 니 다//echo trim($cdata);/echo $this->tags;//echo "";}}function check($str){/검사 문자 if(strlen($str)<1)//빈 문자 return'이 라면//'elsereturn$str;/'를 되 돌려 줍 니 다.그렇지 않 으 면 원래 의 길 로 되 돌아 갑 니 다(그렇지 않 으 면 XML 이 끝 표 시 를 하지 않 을 것 같 습 니 다)}function saveas($filename)/{$c='로 저장 합 니까?xml version="1.0" encoding="gb2312"?>'.enter; //이 건 말 안 해도 되 죠?enter 는 define("enter",chr(13).chr(10);$c.="<".$this->root.">".enter; //우선 루트 요 소 를 설정 합 니 다 for(reset($this->Data);$i=key($this->Data);next($this->Data){//모든 데 이 터 를 들 기 시 작 했 습 니 다$c.="<".$i.">".$this->check($this->Data[$i]).".enter;/배열 표 이름 으로 요소 탭 을 만 들 고 데이터 내용}//echo$c;$c.="root.">".enter;//끝 탭$fp=fopen($filename,"w");/파일 fwrite($fp,$c)쓰기;fclose($fp);}};/*새 키 XML 파일 $xml = new DATA_XML(경로."arm.xml","DATA"/*루트 요소*/);$xml->Data["UserName"]="관우"; $xml->Data["Nick"]="관운 장";$xml->saveas(경로."arm.xml"); unset( $xml ); // 파일 읽 기 $xml = new DATA_XML(경로."arm.xml","DATA"); echo $xml->Data["Nick"];//보 여 드릴 까요? $xml->Data["Nick"]="관 나리";/UPDATE $xml->Data["Master"]="유비";/INSERT INTO $xml->saveas(경로."arm.xml");/덮어 쓰기 자체 로 저장*/?>