PHP DOMDocument 분석 및 xml 생 성 방법 분석
4382 단어 PHPDOMDocumentxml
앞에서 여러분 과 나 누 었 습 니 다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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.