Heim Backend-Entwicklung PHP-Tutorial php读写xml文件的方法介绍

php读写xml文件的方法介绍

Jul 25, 2016 am 09:03 AM

  1. header("content-type:text/html; charset=utf-8"); //指定PHP使用UTF-8编码
  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文件。 主要通过DOMDocument、DOMElement和DOMNodeList来完成XML的读取与写入操作。

下面为大家介绍如何使用这些类,供大家学习参考。

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

  1. PHP访问mysql数据库 初级篇
  2. http://blog.csdn.net/morewindows/article/details/7102362
  3. PHP访问MySql数据库 初级篇
  4. http://blog.csdn.net/morewindows/article/details/7102362
复制代码

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

首先new一个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访问MySql数据库 初级篇");</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> <li>// by MoreWindows( http://blog.csdn.net/MoreWindows )</li> <li>$article_array = array(</li> <li>"第一篇" => array(</li> <li>"title"=>"PHP访问MySql数据库 初级篇",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7102362"</li> <li>),</li> <li>"第二篇" => array(</li> <li>"title"=>"PHP访问MySql数据库 中级篇 Smarty技术",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7094642"</li> <li>),</li> <li>"第三篇" => 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) . '字节';</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> <li>// by MoreWindows( http://blog.csdn.net/MoreWindows )</li> <li>$article_array = array(</li> <li>"第一篇" => array(</li> <li>"title"=>"PHP访问MySql数据库 初级篇",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7102362"</li> <li>),</li> <li>"第二篇" => array(</li> <li>"title"=>"PHP访问MySql数据库 中级篇 Smarty技术",</li> <li>"link"=>"http://blog.csdn.net/morewindows/article/details/7094642"</li> <li>),</li> <li>"第三篇" => 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) . '字节';</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文件</p></li> <li>// by MoreWindows( http://blog.csdn.net/MoreWindows )</li> <li>$filename = "D:test.xml";</li> <li>$article_array = array();</li> <li><p>$dom = new DOMDocument('1.0', 'UTF-8');</p></li> <li>$dom->load($filename);</li> <li><p>//得到<article>结点<li>$articles = $dom->getElementsByTagName("article");</li> <li>echo '<article> 结点个数 ' . $articles->length;<li>foreach ($articles as $article)</li> <li>{</li> <li>$id = $article->getElementsByTagName("id")->item(0)->nodeValue;</li> <li>$title = $article->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>}</li></article> </li></article></p></li> <li><p>//输出结果</p></li> <li>echo "<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">";</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div> </li> <li>var_dump($article_array);</li> <li>echo "";</li> <li>?></li> <li> </ol></div> <em onclick="copycode($('code_oek'));">复制代码</em> </div> <p>#----------------- </p> <div class="blockcode"> <div id="code_PhZ"><ol> <li> <li> <li><p><?php <li>//读取XML文件</p></li> <li>// by MoreWindows( http://blog.csdn.net/MoreWindows )</li> <li>$filename = "D:test.xml";</li> <li>$article_array = array();</li> <li><p>$dom = new DOMDocument('1.0', 'UTF-8');</p></li> <li>$dom->load($filename);</li> <li><p>//得到<article>结点<li>$articles = $dom->getElementsByTagName("article");</li> <li>echo '<article> 结点个数 ' . $articles->length;<li>foreach ($articles as $article)</li> <li>{</li> <li>$id = $article->getElementsByTagName("id")->item(0)->nodeValue;</li> <li>$title = $article->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>}</li></article> </li></article></p></li> <li><p>//输出结果</p></li> <li>echo "<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">";</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div> </li> <li>var_dump($article_array);</li> <li>echo "";</li> <li>?></li> <li> </ol></div> <em onclick="copycode($('code_PhZ'));">复制代码</em> </div>


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

PHP -Protokollierung: Best Practices für die PHP -Protokollanalyse PHP -Protokollierung: Best Practices für die PHP -Protokollanalyse Mar 10, 2025 pm 02:32 PM

Die PHP -Protokollierung ist für die Überwachung und Debugie von Webanwendungen von wesentlicher Bedeutung sowie für das Erfassen kritischer Ereignisse, Fehler und Laufzeitverhalten. Es bietet wertvolle Einblicke in die Systemleistung, hilft bei der Identifizierung von Problemen und unterstützt eine schnellere Fehlerbehebung

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

See all articles