ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルを使用して XML ファイルを読み書きするためのヒント

PHP_PHP チュートリアルを使用して XML ファイルを読み書きするためのヒント

WBOY
WBOYオリジナル
2016-07-20 11:18:011157ブラウズ

一般的に使用される行は次のとおりです:

header("content-type:text/html; charset=utf-8"); //UTF-8 エンコーディングを使用するように PHP を指定します
$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 の読み取りおよび書き込み操作を完了します。以下に、これらのクラスの使用方法を簡単に説明します。

1. XMLファイルを生成します
XMLファイルの場合は以下のようになります。

[html]
; <記事> PHP Access MySql データベース初心者 http://blog.csdn.net/morewindows/article/details/7102362
<記事>
PHP Access MySql データベース初心者
http://blog.csdn.net/morewindows/article/details/7102362

PHP を使用して生成する方法を見てみましょう:

まず新しい DOMDocument オブジェクトを作成し、エンコード形式を設定します。

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

$dom->formatOutput= true;

ノードとノードを再度作成します</p> <p>$rootelement =$dom->createElement("article");</p> <p>$title =$dom->createElement("title", "PHP Access MySql データベース - 初級");</p> <p>次に、テキストコンテンツを含む<link>ノードを作成します</p> <p>$link =$dom->createElement("link","http://blog.csdn.net/morewindows/article/details/7102362");</p> <p>最初に <link> ノードを生成してから、そこにテキスト コンテンツを追加することもできます。 </p> <p>$link = $dom->createElement("link");</p> <p>$linktext =$dom->createTextNode('http://blog.csdn.net/morewindows/article/details/7102362');</p> <p>$link->appendChild($linktext);</p> <p>次に、<title> ノードと <link> を <article> ノードに追加します。 </p>$rootelement->appendChild($title);<p> </p>$rootelement->appendChild($link);<p> </p>最後に、<article> ノードを DOMDocument オブジェクトに追加します。 <p>$dom->appendChild($rootelement);</p> <p>完全な XML が生成されます。次に、XML 全体を再生成します </p> <p>echo $dom->saveXML() ;</p> <p>saveXML() は XML テキストの一部のみを入力することもできます。たとえば、echo $dom->saveXML($link); は <link>http://blog.csdn のみを出力します。 .net/morewindows/article/details/7102362</link></p> <p>以下は、PHP でデータ コンテンツを XML ファイルに出力する完全な例です。この例では、PHP 配列を XML ファイルに出力します。 </p> <p>[php] <?php </p> //配列をXMLファイルに出力します <p> // 投稿者 MoreWindows( http://blog.csdn.net/MoreWindows ) </p> $article_array = array( <p> 「最初の記事」 => array( </p> "title"=>"PHP が MySql データベースにアクセスする - 初級", </p> <p> "リンク"=>"http://blog.csdn.net/morewindows/article/details/7102362" <br> )、<br> 「2番目の記事」 => array( <br> "title"=>"PHP Access MySql データベース中間 Smarty テクノロジー", <br> "リンク"=>"http://blog.csdn.net/morewindows/article/details/7094642" <br> )、<br> 「パート 3」 => array( <br> "title"=>"PHP Access MySql データベース高度な AJAX テクノロジ", <br> "リンク"=>"http://blog.csdn.net/morewindows/article/details/7086524" <br> )、<br> ); $dom = 新しい DOMDocument('1.0', 'UTF-8'); $dom->formatOutput = true <br> $rootelement = $dom->createElement("MoreWindows"); foreach ($article_array as $key=>$value) <br> { <br> $article = $dom->createElement("article", $key); $title = $dom->createElement("タイトル", $value['タイトル']); $link = $dom->createElement("link", $value['link']); $article->appendChild($title); $article->appendChild($link); $rootelement->appendChild($article); <br></p> <p>} <br> $dom->appendChild($rootelement); $ファイル名 = "D:test.xml"; echo 'XML ファイル サイズ' . $dom->save($filename) <br> ?><br> <?php<br /> //配列をXMLファイルに出力します<br /> // 投稿者 MoreWindows( http://blog.csdn.net/MoreWindows )<br /> $article_array = 配列(<br /> 「最初の記事」 => array(<br /> "title"=>"PHP が MySql データベースにアクセスする - 初級",<br> "link"=>"http://blog.csdn.net/morewindows/article/details/7102362"<br> )、<br> 「2番目の記事」 => array(<br> "title"=>"PHP Access MySql データベース中間 Smarty テクノロジー",<br> "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"<br> )、<br> 「パート 3」 => array(<br> "title"=>"PHP Access MySql データベースの高度な AJAX テクノロジ",<br> "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"<br> )、<br> );<br> $dom = 新しい 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> この PHP を実行すると、D ドライブに test.xml ファイルが生成されます (Win7 + XAMPP + IE9.0 テストに合格しました)<br> <br> <br> </p>2つ。 XMLファイルを読み取る <p> 例として、前の記事で生成された D:test.xml を読んでみましょう: </p> <p>[php] <?php <br> //XML ファイルを読み込みます </p> // 投稿者 MoreWindows( http://blog.csdn.net/MoreWindows ) <p> $ファイル名 = "D:test.xml"; $article_array = 配列(); <br> $dom = 新しい DOMDocument('1.0', 'UTF-8'); $dom->load($ファイル名); <br> // <article> ノードを取得します。 $articles = $dom->getElementsByTagName("記事"); echo '<article> ノード数' <br> foreach ($articles を $article として) <br> { <br> $id = $article->getElementsByTagName("id")->item(0)->nodeValue; $title = $article->getElementsByTagName("title")->item(0)->nodeValue; $link = $article->getElementsByTagName("link")->item(0)->nodeValue; $article_array[$id] = array('title'=>$title, 'link'=>$link); }<br> <br> //結果を出力する <br> エコー "<pre class="brush:php;toolbar:false">"; var_dump($article_array) <br> エコー "</pre>"; ?><br> <?php<br> //XMLファイルを読み込みます<br> // 投稿者 MoreWindows( http://blog.csdn.net/MoreWindows )<br> $filename = "D:test.xml";<br> $article_array = array();<br> <br> <br> <br>$dom = 新しい 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 を $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);</p> }<p> </p>//結果を出力する<p> echo "<pre class="brush:php;toolbar:false">";<br> var_dump($article_array);</p> echo "</pre>";<p> ?><br><br> <br><br><br>http://www.bkjia.com/PHPjc/37186​​6.html<br><br>www.bkjia.com<br><br>tru​​e</p> <p>http://www.bkjia.com/PHPjc/37186​​6.html<br><br>技術記事<br><br>次の行がよく使用されます: header(content-type:text/html; charset=utf-8); //UTF-8 エンコーディングを使用するように PHP を指定します $xml = simplexml_load_file(example.xml); //xml ファイルを読み取りますnewxml = $xml-asXML(...</p> <p align="left"></p> <div style="display:none;"> <span id="url" itemprop="url"></span> </div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="PHP配列関連関数の使い方_PHPチュートリアル" href="http://m.php.cn/ja/faq/306403.html">PHP配列関連関数の使い方_PHPチュートリアル</a></span><span>次の記事:<a class="dBlack" title="PHP配列関連関数の使い方_PHPチュートリアル" href="http://m.php.cn/ja/faq/306405.html">PHP配列関連関数の使い方_PHPチュートリアル</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2.html" title="正規表現内のすべての式記号 (概要)" class="aBlack">正規表現内のすべての式記号 (概要)</a><div class="clear"></div></li></ul></div></div><div class="nphpFoot"><div class="nphpFootBg"><ul class="nphpFootMenu"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><p>ホームページ</p></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><p>コース</p></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><p>に質問</p></a></li><li><a href="http://m.php.cn/ja/login"><b class="icon5"></b><p>私の</p></a></li><div class="clear"></div></ul></div></div><div class="nphpYouBox" style="display: none;"><div class="nphpYouBg"><div class="nphpYouTitle"><span onclick="$('.nphpYouBox').hide()"></span><a href="http://m.php.cn/ja/"></a><div class="clear"></div></div><ul class="nphpYouList"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><span>ホームページ</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><span>コース</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/article.html"><b class="icon3"></b><span>記事</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><span>に質問</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/dic.html"><b class="icon6"></b><span>辞書</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course/type/99.html"><b class="icon7"></b><span>マニュアル</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/xiazai/"><b class="icon8"></b><span>ダウンロード</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/faq/zt" title="特集"><b class="icon12"></b><span>特集</span><div class="clear"></div></a></li><div class="clear"></div></ul></div></div><div class="nphpDing" style="display: none;"><div class="nphpDinglogo"><a href="http://m.php.cn/ja/"></a></div><div class="nphpNavIn1"><div class="swiper-container nphpNavSwiper1"><div class="swiper-wrapper"><div class="swiper-slide"><a href="http://m.php.cn/ja/" >ホームページ</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/article.html" class="hover">記事</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/wenda.html" >に質問</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/course.html" >コース</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/faq/zt" >特集</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/xiazai" >ダウンロード</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/game" >ゲーム</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/dic.html" >辞書</a></div><div class="clear"></div></div></div><div class="langadivs" ><a href="javascript:;" class="bg4 bglanguage"></a><div class="langadiv" ><a onclick="javascript:setlang('zh-cn');" class="language course-right-orders chooselan " href="javascript:;"><span>简体中文</span><span>(ZH-CN)</span></a><a onclick="javascript:setlang('en');" class="language course-right-orders chooselan " href="javascript:;"><span>English</span><span>(EN)</span></a><a onclick="javascript:setlang('zh-tw');" class="language course-right-orders chooselan " href="javascript:;"><span>繁体中文</span><span>(ZH-TW)</span></a><a onclick="javascript:;" class="language course-right-orders chooselan chooselanguage" href="javascript:;"><span>日本語</span><span>(JA)</span></a><a onclick="javascript:setlang('ko');" class="language course-right-orders chooselan " href="javascript:;"><span>한국어</span><span>(KO)</span></a><a onclick="javascript:setlang('ms');" class="language course-right-orders chooselan " href="javascript:;"><span>Melayu</span><span>(MS)</span></a><a onclick="javascript:setlang('fr');" class="language course-right-orders chooselan " href="javascript:;"><span>Français</span><span>(FR)</span></a><a onclick="javascript:setlang('de');" class="language course-right-orders chooselan " href="javascript:;"><span>Deutsch</span><span>(DE)</span></a></div></div><script> var swiper = new Swiper('.nphpNavSwiper1', { slidesPerView : 'auto', observer: true,//修改swiper自己或子元素时,自动初始化swiper observeParents: true,//修改swiper的父元素时,自动初始化swiper }); </script></div></div><!--顶部导航 end--><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>