您当前的位置: 首页 > 网站编程 > PHP教程 > PHP读写XML文件技巧

PHP读写XML文件技巧

作者:不详 来源:网络 发布时间: 2014-08-21 17:55 点击:
常用 如下 几行: 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); //写入

PHP读写XML文件技巧

  常用 如下 几行:

  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] <?xml version="1.0" encoding="UTF-8"?>

  <article>

  <title>PHP访问MySql数据库 初级篇</title>

  <link>http://blog.csdn.net/morewindows/article/details/7102362</link>

  </article>

  <?xml version="1.0" encoding="UTF-8"?>

  <article>

  <title>PHP访问MySql数据库 初级篇</title>

  <link>http://blog.csdn.net/morewindows/article/details/7102362</link>

  </article>

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

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

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

  $dom->formatOutput= true;

  再创建<article>结点和<title>结点

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

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

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

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

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

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

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

  $link->appendChild($linktext);

  然后将<title>和<link>结点加入到<article>结点中去

  $rootelement->appendChild($title);

  $rootelement->appendChild($link);

  最后将<article>结点加入到DOMDocument对象中,

  $dom->appendChild($rootelement);

  这样一个完整的XML就生成完毕了。再整出整个XML,

  echo $dom->saveXML() ;

  saveXML()也可以只输入部分XML文本,如echo $dom->saveXML($link);就只会输出<link>结点:<link>http://blog.csdn.net/morewindows/article/details/7102362</link>

  下面再给出一个完整的PHP中数据内容输出到XML文件的例子。该例子会对将一个PHP数组输出到XML文件中。

  [php] <?php

  //将数组输出到XML文件中

  // by MoreWindows( http://blog.csdn.net/MoreWindows )

  $article_array = array(

  "第一篇" => array(

  "title"=>"PHP访问MySql数据库 初级篇",

  "link"=>"http://blog.csdn.net/morewindows/article/details/7102362"

  ),

  "第二篇" => array(

  "title"=>"PHP访问MySql数据库 中级篇 Smarty技术",

  "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"

  ),

  "第三篇" => array(

  "title"=>"PHP访问MySql数据库 高级篇 AJAX技术",

  "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"

  ),

  );

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

  $dom->formatOutput = true;

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

  foreach ($article_array as $key=>$value)

  {

  $article = $dom->createElement("article", $key);

  $title = $dom->createElement("title", $value['title']);

  $link = $dom->createElement("link", $value['link']);

  $article->appendChild($title);

  $article->appendChild($link);

  $rootelement->appendChild($article);

  }

  $dom->appendChild($rootelement);

  $filename = "D:test.xml";

  echo 'XML文件大小' . $dom->save($filename) . '字节';

  ?>

  <?php

  //将数组输出到XML文件中

  // by MoreWindows( http://blog.csdn.net/MoreWindows )

  $article_array = array(

  "第一篇" => array(

  "title"=>"PHP访问MySql数据库 初级篇",

  "link"=>"http://blog.csdn.net/morewindows/article/details/7102362"

  ),

  "第二篇" => array(

  "title"=>"PHP访问MySql数据库 中级篇 Smarty技术",

  "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"

  ),

  "第三篇" => array(

  "title"=>"PHP访问MySql数据库 高级篇 AJAX技术",

  "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"

  ),

  );

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

  $dom->formatOutput = true;

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

  foreach ($article_array as $key=>$value)

  {

  $article = $dom->createElement("article", $key);

  $title = $dom->createElement("title", $value['title']);

  $link = $dom->createElement("link", $value['link']);

  $article->appendChild($title);

  $article->appendChild($link);

  $rootelement->appendChild($article);

  }

  $dom->appendChild($rootelement);

  $filename = "D:test.xml";

  echo 'XML文件大小' . $dom->save($filename) . '字节';

  ?>

  运行该PHP会在D盘上生成test.xml文件(Win7 + XAMPP + IE9.0测试通过)

  二.读取XML文件

  以读取前文中生成的D:test.xml为例:

  [php] <?php

  //读取XML文件

  // by MoreWindows( http://blog.csdn.net/MoreWindows )

  $filename = "D:test.xml";

  $article_array = array();

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

  $dom->load($filename);

  //得到<article>结点

  $articles = $dom->getElementsByTagName("article");

  echo '<article> 结点个数 ' . $articles->length;

  foreach ($articles as $article)

  {

  $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);

  }

  //输出结果

  echo "<pre>";

  var_dump($article_array);

  echo "</pre>";

  ?>

  <?php

  //读取XML文件

  // by MoreWindows( http://blog.csdn.net/MoreWindows )

  $filename = "D:test.xml";

  $article_array = array();

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

  $dom->load($filename);

  //得到<article>结点

  $articles = $dom->getElementsByTagName("article");

  echo '<article> 结点个数 ' . $articles->length;

  foreach ($articles as $article)

  {

  $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);

  }

  //输出结果

  echo "<pre>";

  var_dump($article_array);

  echo "</pre>";

  ?>
分享到:
本文"PHP读写XML文件技巧"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4