>백엔드 개발 >PHP 튜토리얼 >PHP에서 XML 파일을 읽고 쓰는 방법 소개

PHP에서 XML 파일을 읽고 쓰는 방법 소개

WBOY
WBOY원래의
2016-07-25 09:03:38879검색
  1. header("content-type:text/html; charset=utf-8") //UTF-8 인코딩을 사용하도록 PHP 지정
  2. $xml = simplexml_load_file ("example.xml"); //xml 파일 읽기
  3. $newxml = $xml->asXML(); //$xml 표준화
  4. $fp = fopen("newxml.xml", "w "); //새 xml 파일
  5. fwrite($fp, $newxml); //쓰기 -------xml 파일
  6. fclose($fp);
코드 복사

php는 xml 파일을 쉽게 생성하고 읽을 수 있습니다. XML 읽기 및 쓰기 작업은 주로 DOMDocument, DOMElement 및 DOMNodeList를 통해 완료됩니다.

다음은 참고용으로 이러한 클래스를 사용하는 방법을 소개합니다.

1. XML 파일 생성 XML 파일의 경우 다음과 같습니다.

  1. <기사>
  2. <제목> ;MySQL 데이터베이스에 액세스하는 PHP에 대한 예비 기사
  3. http://blog.csdn.net/morewindows/article/details/7102362
  4. MySql 데이터베이스에 액세스하는 PHP에 대한 주요 기사
  5. < link>http://blog.csdn.net/morewindows/article/details/7102362
코드 복사

PHP를 사용하여 생성하는 방법을 살펴보겠습니다.

먼저 새 DOMDocument 개체를 만들고 인코딩 형식을 설정합니다.

  1. $dom = newDOMDocument('1.0', 'UTF-8');
  2. $dom->formatOutput= true;
코드 복사

노드 생성 및

노드 생성 <div class="blockcode"> <div id="code_qiv"><ol> <li> <li>$rootelement =$dom->createElement("article");</li> <li>$title =$dom->createElement("title", "MySql 데이터베이스에 액세스하는 PHP에 대한 예비 기사");</li> </ol></div> <em onclick="copycode($('code_qiv'));">코드를 복사</em> </div> <p>한 다음 텍스트 콘텐츠가 있는 <link> 노드를 만듭니다. </p> <div class="blockcode"> <div id="code_rRR"><ol> <li> <li>$link =$dom->createElement("link","http://blog.csdn.net/morewindows/article/details/7102362 ");</li> </ol></div> <em onclick="copycode($('code_rRR'));">코드 복사</em> </div> <p><link> 노드를 먼저 생성한 다음 텍스트 콘텐츠를 추가할 수도 있습니다. </p> <div class="blockcode"> <div id="code_wcK"><ol> <li> <li>$link = $dom->createElement("link");</li> <li>$linktext =$dom->createTextNode('http:/ / /blog.csdn.net/morewindows/article/details/7102362');</li> <li>$link->appendChild($linktext);</li> </ol></div> <em onclick="copycode($('code_wcK'));">코드 복사</em> </div> <p>그런 다음 노드에 </p> <title> 및 <link> 노드를 추가합니다. <div class="blockcode"> <div id="code_zKk"><ol> <li> <li>$rootelement->appendChild($title);</li> <li>$rootelement->appendChild($link);</li> </ol></div> <em onclick="copycode($('code_zKk'));">코드 복사</em> </div> <p>마지막으로 DOMDocument 개체에 노드를 추가하고, </p> <div class="blockcode"> <div id="code_fY4"><ol> <li> <li>$dom->appendChild($rootelement);</li> </ol></div> <em onclick="copycode($('code_fY4'));">코드 복사</em> </div> <p> 이렇게 하면 완전한 XML이 생성됩니다. 그런 다음 전체 XML을 다시 생성합니다. </p> <div class="blockcode"> <div id="code_O6A"><ol> <li> <li>echo $dom->saveXML() ;</li> </ol></div> <em onclick="copycode($('code_O6A'));">코드 복사</em> </div> <p>saveXML()은 XML 텍스트의 일부만 입력할 수도 있습니다(예: echo $dom->saveXML($link)). <link> 노드: <link>http://blog.csdn만 출력됩니다. net/morewindows /article/details/7102362</p> <p>다음은 PHP에서 데이터 내용을 XML 파일로 출력하는 전체 예입니다. 이 예에서는 PHP 배열을 XML 파일로 출력합니다. </p> <div class="blockcode"> <div id="code_du9"><ol> <li> <li><?php<li>//배열을 XML 파일로 출력 <li>// by MoreWindows( http://blog.csdn. net/MoreWindows )<li>$article_array = array(<li>"첫 번째 기사" => array(</li> <li>"title"=>"MySql 데이터베이스에 액세스하는 PHP의 기본 기사",</li> <li>"link"= >"http://blog.csdn.net/morewindows/article/details/7102362"</li> <li>),</li> <li>"두 번째 기사" => array(</li> <li>"title"=>"PHP 액세스 MySql 데이터베이스 중급 장 Smarty Technology",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7094642"</li> <li>),</li> <li>"3부" => ; array(</li> <li>"title"=>"MySql 데이터베이스에 액세스하기 위한 PHP용 고급 AJAX 기술",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details / 7086524"</li> <li>),</li> <li>);</li> <li>$dom = new DOMDocument('1.0', 'UTF-8');</li> <li>$dom->formatOutput = true;</li> <li>$rootelement = $dom->createElement("MoreWindows");</li> <li>foreach($article_array as $key=>$value)</li> <li>{</li> <li>$article = $dom->createElement("article", $ 키);</li> <li>$title = $dom->createElement("title", $value['title']);</li> <li>$link = $dom->createElement("link", $value[ ' link']);</li> <li>$article->appendChild($title);</li> <li>$article->appendChild($link);</li> <li>$rootelement->appendChild($article);</li> <li> }</li> <li>$dom->appendChild($rootelement);</li> <li>$filename = "D:test.xml";</li> <li>echo 'XML 파일 크기' . 'byte';</li> <li>?></li> </ol></div> <em onclick="copycode($('code_du9'));">코드 복사</em> </div> <p>#----------------- -- </p> <div class="blockcode"> <div id="code_LNR"><ol> <li> <li><?php<li>//배열을 XML 파일로 출력 <li>// by MoreWindows( http://blog.csdn. net/MoreWindows )<li>$article_array = array(<li>"첫 번째 기사" => array(</li> <li>"title"=>"MySql 데이터베이스에 액세스하는 PHP의 기본 기사",</li> <li>"link"= >"http://blog.csdn.net/morewindows/article/details/7102362"</li> <li>),</li> <li>"두 번째 기사" => array(</li> <li>"title"=>"PHP 액세스 MySql 데이터베이스 중급 장 Smarty Technology",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7094642"</li> <li>),</li> <li>"3부" => ; array(</li> <li>"title"=>"MySql 데이터베이스에 액세스하기 위한 PHP용 고급 AJAX 기술",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details / 7086524"</li> <li>),</li> <li>);</li> <li>$dom = new DOMDocument('1.0', 'UTF-8');</li> <li>$dom->formatOutput = true;</li> <li>$rootelement = $dom->createElement("MoreWindows");</li> <li>foreach($article_array as $key=>$value)</li> <li>{</li> <li>$article = $dom->createElement("article", $ 키);</li> <li>$title = $dom->createElement("title", $value['title']);</li> <li>$link = $dom->createElement("link", $value[ ' link']);</li> <li>$article->appendChild($title);</li> <li>$article->appendChild($link);</li> <li>$rootelement->appendChild($article);</li> <li> }</li> <li>$dom->appendChild($rootelement);</li> <li>$filename = "D:test.xml";</li> <li>echo 'XML 파일 크기' . 'byte';</li> <li>?></li> </ol></div> <em onclick="copycode($('code_LNR'));">코드 복사</em> </div> <p> 이 PHP를 실행하면 D 드라이브에 test.xml 파일이 생성됩니다(Win7 XAMPP IE9.0 테스트 통과) </p> <p><u><strong>2. XML 파일 읽기 </strong></u> 이전 기사에서 생성된 D:test.xml을 예로 들어 보겠습니다. </p> <div class="blockcode"> <div id="code_oek"><ol> <li> <li> <li><p><?php<li>//XML 파일 읽기<li>// by MoreWindows( http://blog .csdn.net/MoreWindows )<li>$filename = "D:test.xml";<li>$article_array = array();</p></li> <li><p>$dom = new DOMDocument( ' 1.0', 'UTF-8');</li> <li>$dom->load($filename);</p></li> <li><p>//Get<article>$ 기사 = $ dom->getElementsByTagName("article");</li> <li>echo '<article> 노드 수' . $articles->length;</li> <li>foreach($articles를 $article로)</li> <li> {</li> <li> $id = $article->getElementsByTagName("id")->item(0)->nodeValue;</li> <li>$title = $article->getElementsByTagName("title")-> ->nodeValue;</li> <li>$link = $article->getElementsByTagName("link")->item(0)->nodeValue;</li> <li>$article_array[$id] = 배열( '제목'= >$title, 'link'=>$link);</li> <li>}</p></li> <li><p>//결과 출력</li> <li>echo "<pre class="brush:php;toolbar:false">" </li> <li>var_dump ($article_array);</li> <li>echo "</pre>";</li> <li>?></p></li> <li> <li> </ol></div>코드 복사<em onclick="copycode($('code_oek'));"></em> </div>#------ <p></p> <div class="blockcode"> <div id="code_PhZ"> <ol> <li> <li><p><?php<li>//XML 파일 읽기<li>// by MoreWindows( http://blog .csdn.net/MoreWindows )<li>$filename = "D:test.xml";<li>$article_array = array();</p></li> <li><p>$dom = new DOMDocument( ' 1.0', 'UTF-8');</li> <li>$dom->load($filename);</p></li> <li><p>//Get<article>$ 기사 = $ dom->getElementsByTagName("article");</li> <li>echo '<article> 노드 수' . $articles->length;</li> <li>foreach($articles를 $article로)</li> <li> {</li> <li> $id = $article->getElementsByTagName("id")->item(0)->nodeValue;</li> <li>$title = $article->getElementsByTagName("title")-> ->nodeValue;</li> <li>$link = $article->getElementsByTagName("link")->item(0)->nodeValue;</li> <li>$article_array[$id] = 배열( '제목'= >$title, 'link'=>$link);</li> <li>}</p></li> <li><p>//결과 출력</li> <li>echo "<pre class="brush:php;toolbar:false">" </li> <li>var_dump ($article_array);</li> <li>echo "</pre>";</li> <li>?></p></li> <li> <li> <li> </ol>코드 복사</div> <em onclick="copycode($('code_PhZ'));"></em> </div>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.