찾다
php教程php手册PHP读写XML文件技巧

PHP读写XML文件技巧

Jun 13, 2016 am 11:33 AM
charheaderhtmlphptextxml일반적으로 사용되는기능문서읽고 쓰기

 常用 如下 几行:

header("content-type:text/html; charset=utf-8"); //指定PHP使用UTF-8编码
$xml = simplexml_load_file("example.xml"); //读取xml文件
$newxml = $xml->asXML(); //标准化$xml
$fp = fopen("newxml.xml", "w"); //新建xml文件
fwrite($fp, $newxml); //写入-------xml文件
fclose($fp);

PHP可以方便的生成和读取XML文件。PHP主要通过DOMDocument、DOMElement和DOMNodeList来完成XML的读取与写入操作的。下面就简要说明下如何使用这些类。

一.生成XML文件
对于一个如下XML文件。

[html]


PHP访问MySql数据库 初级篇
http://blog.csdn.net/morewindows/article/details/7102362



PHP访问MySql数据库 初级篇
http://blog.csdn.net/morewindows/article/details/7102362

我们来看看如何用PHP来生成:

首先new一个DOMDocument对象并设置编码格式。

$dom = newDOMDocument('1.0', 'UTF-8');

$dom->formatOutput= true;

再创建

结点和结点

$rootelement =$dom->createElement("article");

$title =$dom->createElement("title", "PHP访问MySql数据库 初级篇");

然后创建带文本内容的结点

$link =$dom->createElement("link","http://blog.csdn.net/morewindows/article/details/7102362");

也可以先生成结点再为其添加文本内容。

$link = $dom->createElement("link");

$linktext =$dom->createTextNode('http://blog.csdn.net/morewindows/article/details/7102362');

$link->appendChild($linktext);

然后将

和<link>结点加入到<article>结点中去 <p>$rootelement->appendChild($title);</p> <p>$rootelement->appendChild($link);</p> <p>最后将<article>结点加入到DOMDocument对象中,</article></p> <p>$dom->appendChild($rootelement);</p> <p>这样一个完整的XML就生成完毕了。再整出整个XML,</p> <p>echo $dom->saveXML() ;</p> <p>saveXML()也可以只输入部分XML文本,如echo $dom->saveXML($link);就只会输出<link>结点:<link>http://blog.csdn.net/morewindows/article/details/7102362</p> <p>下面再给出一个完整的PHP中数据内容输出到XML文件的例子。该例子会对将一个PHP数组输出到XML文件中。</p> <p>[php] <?php <br /> //将数组输出到XML文件中 <br> // by MoreWindows( http://blog.csdn.net/MoreWindows ) <br> $article_array = array( <br> "第一篇" => array( <br> "title"=>"PHP访问MySql数据库 初级篇", <br> "link"=>"http://blog.csdn.net/morewindows/article/details/7102362" <br> ), <br> "第二篇" => array( <br> "title"=>"PHP访问MySql数据库 中级篇 Smarty技术", <br> "link"=>"http://blog.csdn.net/morewindows/article/details/7094642" <br> ), <br> "第三篇" => array( <br> "title"=>"PHP访问MySql数据库 高级篇 AJAX技术", <br> "link"=>"http://blog.csdn.net/morewindows/article/details/7086524" <br> ), <br> ); <br> $dom = new DOMDocument('1.0', 'UTF-8'); <br> $dom->formatOutput = true; <br> $rootelement = $dom->createElement("MoreWindows"); <br> foreach ($article_array as $key=>$value) <br> { <br> $article = $dom->createElement("article", $key); <br> $title = $dom->createElement("title", $value['title']); <br> $link = $dom->createElement("link", $value['link']); <br> $article->appendChild($title); <br> $article->appendChild($link); <br> $rootelement->appendChild($article); <br>  </p> <p>} <br> $dom->appendChild($rootelement); <br> $filename = "D:test.xml"; <br> echo 'XML文件大小' . $dom->save($filename) . '字节'; <br> ?> <br> <?php <br /> //将数组输出到XML文件中<br> // by MoreWindows( http://blog.csdn.net/MoreWindows )<br> $article_array = array(<br> "第一篇" => array(<br> "title"=>"PHP访问MySql数据库 初级篇",<br> "link"=>"http://blog.csdn.net/morewindows/article/details/7102362"<br> ),<br> "第二篇" => array(<br> "title"=>"PHP访问MySql数据库 中级篇 Smarty技术",<br> "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"<br> ),<br> "第三篇" => array(<br> "title"=>"PHP访问MySql数据库 高级篇 AJAX技术",<br> "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"<br> ),<br> );<br> $dom = new DOMDocument('1.0', 'UTF-8');<br> $dom->formatOutput = true;<br> $rootelement = $dom->createElement("MoreWindows");<br> foreach ($article_array as $key=>$value)<br> {<br> $article = $dom->createElement("article", $key);<br> $title = $dom->createElement("title", $value['title']);<br> $link = $dom->createElement("link", $value['link']);<br> $article->appendChild($title);<br> $article->appendChild($link);<br> $rootelement->appendChild($article);<br> }<br> $dom->appendChild($rootelement);<br> $filename = "D:test.xml";<br> echo 'XML文件大小' . $dom->save($filename) . '字节';<br> ?><br> 运行该PHP会在D盘上生成test.xml文件(Win7 + XAMPP + IE9.0测试通过)</p> <p> </p> <p>二.读取XML文件 <br> 以读取前文中生成的D:test.xml为例:</p> <p>[php] <?php <br /> //读取XML文件 <br> // by MoreWindows( http://blog.csdn.net/MoreWindows ) <br> $filename = "D:test.xml"; <br> $article_array = array(); <br> <br> $dom = new DOMDocument('1.0', 'UTF-8'); <br> $dom->load($filename); <br> <br> //得到<article>结点 <br> $articles = $dom->getElementsByTagName("article"); <br> echo '<article> 结点个数 ' . $articles->length; <br> foreach ($articles as $article) <br> { <br> $id = $article->getElementsByTagName("id")->item(0)->nodeValue; <br> $title = $article->getElementsByTagName("title")->item(0)->nodeValue; <br> $link = $article->getElementsByTagName("link")->item(0)->nodeValue; <br> $article_array[$id] = array('title'=>$title, 'link'=>$link); <br> } <br> <br> //输出结果 <br> echo "<pre class="brush:php;toolbar:false">"; <br> var_dump($article_array); <br> echo "</pre>"; <br> ?> <br> <?php <br /> //读取XML文件<br> // by MoreWindows( http://blog.csdn.net/MoreWindows )<br> $filename = "D:test.xml";<br> $article_array = array();</article></article></p> <p> </p> <p>$dom = new DOMDocument('1.0', 'UTF-8');<br> $dom->load($filename);</p> <p>//得到<article>结点<br> $articles = $dom->getElementsByTagName("article");<br> echo '<article> 结点个数 ' . $articles->length;<br> foreach ($articles as $article)<br> {<br> $id = $article->getElementsByTagName("id")->item(0)->nodeValue;<br> $title = $article->getElementsByTagName("title")->item(0)->nodeValue;<br> $link = $article->getElementsByTagName("link")->item(0)->nodeValue;<br> $article_array[$id] = array('title'=>$title, 'link'=>$link);<br> }</article></article></p> <p>//输出结果<br> echo "</p> <pre class="brush:php;toolbar:false">";<br> var_dump($article_array);<br> echo "</pre>";<br> ?> </article>
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.