PHP DOMDocument 분석 및 xml 생 성 방법 분석

4382 단어 PHPDOMDocumentxml
이 사례 는 PHP 가 DOMDocument 을 바탕 으로 xml 를 분석 하고 생 성 하 는 방법 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
앞에서 여러분 과 나 누 었 습 니 다Simple XML 조작 xml 지식하지만 phop 에 서 는 simplexml 외 에 도 DOMDocument 이 있 습 니 다.이번 에는 DOMDocument 의 용법 을 살 펴 보 겠 습 니 다.xml 생 성 과 해석 xml 를 분리 해서 쓰 시 겠 습 니까?
1.xml 생 성
DOMDocument 조작 xml 은 이전의 simplexml 보다 좀 복잡 합 니 다.저 는 simplexml 은 자바 의 dom4j 를 생각 합 니 다.어쨌든 원 리 는 똑 같 습 니 다.DOMDocument 의 노드,속성 을 가지 와 잎 으로 본다 면 DOMDocument 의 DOMDocument 은 뿌리 이 고 노드 와 속성 은 모두 이 대상 아래 에 마 운 트 됩 니 다.아래 코드 를 보면 잘 알 수 있 습 니 다.

<?php
 $doc=new DOMDocument('1.0','utf-8');
 //     
 $root=$doc->createElement("StudentInfo");
 //        
 $item=$doc->createElement("Item");
 $name=$doc->createElement("name","   ");
 $studentnum=$doc->createElement("num","2009010502");
 //    (phpdom            )
 $id=$doc->createAttribute("id");
 $value=$doc->createTextNode('1');
 $id->appendChild($value);
 //           
 $item->appendChild($name);
 $item->appendChild($studentnum);
 $item->appendChild($id);
 $item2=$doc->createElement("Item");
 $name2=$doc->createElement("name","   ");
 $studentnum2=$doc->createElement("num","2009010505");
 $id2=$doc->createAttribute("id");
 $value2=$doc->createTextNode('2');
 $id2->appendChild($value2);
 $item2->appendChild($name2);
 $item2->appendChild($studentnum2);
 $item2->appendChild($id2);
 $root->appendChild($item);
 $root->appendChild($item2);
 //       DOMDocument  
 $doc->appendChild($root);
 header("Content-type: text/xml");
 //      xml
 echo $doc->saveXML();
 // xml     
 $doc->save("stu.xml");
?>

이 코드 를 자세히 보면 복잡 하지 않 습 니 다.id 속성 이 있 는 곳 에 서 는 의문 이 있 을 수 있 습 니 다.텍스트 노드 도 DOMDocument 아래 에 마 운 트 한 다음 에 텍스트 노드 를 속성 아래 에 마 운 트 해 야 합 니 다.생 성 된 xml 보기

사실 DOMDocument 은 먼저 노드 나 속성 을 생 성 하 는 것 이 고 xml 의 등급 관 계 는 마지막 으로 addchild 를 통 해 나타난다.
2.DOMDocument 해석

<?php
 $doc=new DOMDocument();
 //     xml      loadXML
 $doc->load('stu.xml');
 //     
 $root=$doc->documentElement;
 //              
 $items=$root->getElementsByTagName('Item');
 foreach($items as $key=>$val){
  // echo count($val->attributes);
  //id          item(0),nodeValue        
  echo $val->attributes->item(0)->name.":".$val->attributes->item(0)->nodeValue."  ";
  foreach($val->getElementsByTagName('name') as $key2=>$val2){
    echo $val2->nodeValue."  ";
  }
  foreach($val->getElementsByTagName('num') as $key3=>$val4){
    echo $val4->nodeValue."</br>";
  }
 }
?>

해석 하면 이해 하 는 것 이 중요 합 니 다.getElementsByTagName 방법,attributes 속성 과 item 은 xml 를 해석 하 는 중점 입 니 다.다른 것 은 모두 간단 한 셈 이 니 해석 해 낸 것 을 보 자.

전반적 으로 simplexml 보다 귀 찮 지만 프로그래머 로 서 받 아들 일 수 있 겠 죠?
PS:여기 서 xml 작업 에 관 한 온라인 도 구 를 몇 가지 더 제공 하여 참고 하 시기 바 랍 니 다.
온라인 XML/JSON 상호 변환 도구:
http://tools.jb51.net/code/xmljson
온라인 포맷 XML/온라인 압축 XML:
http://tools.jb51.net/code/xmlformat
XML 온라인 압축/포맷 도구:
http://tools.jb51.net/code/xml_format_compress
XML 코드 온라인 포맷 미화 도구:
http://tools.jb51.net/code/xmlcodeformat
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기