ホームページ  >  記事  >  バックエンド開発  >  phpでxmlファイルを読み書きする方法の紹介

phpでxmlファイルを読み書きする方法の紹介

WBOY
WBOYオリジナル
2016-07-25 09:03:38821ブラウズ
  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. mysql データベースへの PHP アクセス主要記事
  2. < ;article>
  3. PHP を使用した MySql データベースへのアクセスに関する予備記事
  4. 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", "PHP Access MySql Database Elementary Article");</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() は、echo $dom->saveXML($link) のように XML テキストの一部のみを入力することもできます。これは <link>node のみを出力します: <link>http://blog.csdn.net/morewindows/article/詳細/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>"First Article" = > array(</li> <li>"title"=>"MySql データベースへの最初の PHP アクセス",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7102362"</li> <li>)、</li> <li> "パート 2" => array(</li> <li>"title"=>"MySql データベースへの PHP アクセスのための中間記事 Smarty テクノロジ",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article /details/7094642"</li> <li>),</li> <li>"パート 3" => array(</li> <li>"title"=>"PHP が MySQL データベースにアクセスするための高度な 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", $key);</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 ファイル サイズ' . $dom->save($filename) . 'bytes';</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>"First Article" = > array(</li> <li>"title"=>"MySql データベースへの最初の PHP アクセス",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7102362"</li> <li>)、</li> <li> "パート 2" => array(</li> <li>"title"=>"MySql データベースへの PHP アクセスのための中間記事 Smarty テクノロジ",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article /details/7094642"</li> <li>),</li> <li>"パート 3" => array(</li> <li>"title"=>"PHP が MySQL データベースにアクセスするための高度な 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", $key);</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 ファイル サイズ' . $dom->save($filename) . 'bytes';</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>Ⅱ。 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>node</li> <li>$articles = $dom->getElementsByTagName("article");</li> <li>echo '<article>ノード数' 。 </li> <li>foreach ($articles as $article)</li> <li>{</li> <li>$id = $article->getElementsByTagName("id")->item(0)->nodeValue;</li> <li>$title = $article->gt ;getElementsByTagName(" title")->item(0)->nodeValue;</li> <li>$link = $article->getElementsByTagName("link")->item(0)->nodeValue;</li> <li>$article_array[ $id] = array('title'=>$title, 'link'=>$link);</li> <li>}</p></li> <li><p>//出力結果</li> <li>echo "<pre class="brush:php;toolbar:false">"; 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>node</li> <li>$articles = $dom->getElementsByTagName("article");</li> <li>echo '<article>ノード数' 。 </li> <li>foreach ($articles as $article)</li> <li>{</li> <li>$id = $article->getElementsByTagName("id")->item(0)->nodeValue;</li> <li>$title = $article->gt ;getElementsByTagName(" title")->item(0)->nodeValue;</li> <li>$link = $article->getElementsByTagName("link")->item(0)->nodeValue;</li> <li>$article_array[ $id] = array('title'=>$title, 'link'=>$link);</li> <li>}</p></li> <li><p>//出力結果</li> <li>echo "<pre class="brush:php;toolbar:false">"; 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 までご連絡ください。