PHP DOMDocument实现XML读写操作

是PHP脚本读取XML最原始,最笨的方法。

 代码如下 复制代码

$doc = new DOMDocument();
  
$doc->load('test.xml');
  
$rows = $doc->getElementsByTagName("ds");
  
$d = array();
  
$i = 0;
foreach($rows as $row)
{
   $web     = $row->getElementsByTagName('web');
   $webUrl  = $row->getElementsByTagName('webUrl');
   $d[$i]['web']    = $web->item(0)->nodeValue;
   $d[$i]['webUrl'] = $webUrl->item(0)->nodeValue;
   $i++;
}
  
print_R($d);

简单,容易,速度快

 代码如下 复制代码

$xmlData = file_get_contents('test.xml');
  
$xml = simplexml_load_string($xmlData);
  
$xmlArr = objectToArray($xml);

objectToArray函数代码如下

function objectToArray($object)
{  
   if(!$object) return '';
   $result = array();  
   $object = is_object($object) ? get_object_vars($object) : $object;  
   foreach ($object as $key => $val) {  
       $val = (is_object($val) || is_array($val)) ? objectToArray($val) : $val;  
       $result[$key] = $val;  
   }  
   return $result;  
}

上面讲到了读取xml,下面再介绍写xml实例

 代码如下 复制代码

$arr = array(
         array('id'=>1,'web'=>'好脚本','webUrl'=>'http://www.111cn.net'),
         array('id'=>2,'web'=>'PHP脚本','webUrl'=>'http://www.111cn.net/'),
         array('id'=>3,'web'=>'JavaScript脚本','webUrl'=>'http://www.111cn.net/'),
         array('id'=>4,'web'=>'js脚本','webUrl'=>'http://www.111cn.net/'),
         array('id'=>5,'web'=>'PHP脚本示例','webUrl'=>'http://www.111cn.net/'),
         array('id'=>5,'web'=>'JavaScript脚本示例','webUrl'=>'http://www.111cn.net/')
         );
/*使用dom生成xml,注意生成的xml中会没有空格。*/
$dom=new DOMDocument('1.0','utf-8');
  
$path= "logs/test.xml";
  
$data=$dom->createElement('data');
  
$dom->appendChild($data);
  
foreach($arr as $v)
{
    $ds = $dom->createElement('ds');
  
    $id = $dom->createAttribute('id'); 
      
    $id->nodeValue = $v['id'];
   
    $ds->setAttributeNode($id);
  
    $data->appendChild($ds);
  
    foreach($v as $kk=>$vv)
    {
       ${$kk} = $dom->createElement($kk); 
              
       $value= $dom->createTextNode($vv);
      
       ${$kk}->appendChild($value);
  
       $ds->appendChild(${$kk});
  
    }
}
  
$dom->saveXML();
  
$dom->save($path);

时间: 2024-11-08 19:09:35

PHP DOMDocument实现XML读写操作的相关文章

php xml读写操作实现代码

什么是XML? XML(eXtensible Markup Language)是国际标准化组织的标准通用标记语言SGML的子集.由以下规范组成: 可扩展样式语言(eXtensible Sytle Language , XSL) XML链接语言(XML Linking Language,包括Xpath.Xlink和Xpointer) XML名称空间(XML Namespace) 在PHP5之前的版本对XML的处理存在很多的问题,例如XML工具之间只具有简单的关联.每个工具不能一起协同工作等,PHP

Android编程之在SD卡上进行文件读写操作实例详解_Android

本文实例讲述了Android编程之在SD卡上进行文件读写操作的方法.分享给大家供大家参考,具体如下: 很多知识只有真正理解掌握之后才能运用自如,举一反三.对Java中的文件操作和android系统SD卡里面的文件操作,你觉得有区别吗,显然没有本质区别,如果勉强说有,那也是不足为道滴,但我们在实际运用中却要注意如下几点,不然问题会缠上你. 1.首先想要对android系统SD卡里文件操作需要添加使用权限: android系统是不会让外来程序随意动自己内存的,如果没有许可证,不好意思,不准你动我地盘

DOM基础及php读取xml内容操作的方法_php技巧

本文实例讲述了DOM基础及php读取xml内容操作的方法.分享给大家供大家参考.具体分析如下: DOM(Document Object Model):文档对象模型.核心思想是:把 xml文件看作是一个对象模型,然后通过对象的方式来操作 xml 文件. php对xml文档进行增删改查(curd)操作,具体分析如下: xml文档:class.xml 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <c

PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案_php实例

php中DOMDocument对于xml操作我们只要是英文是没有问题了,但如果是中文字体就会有乱码问题了,下面我们就此问题给各位介绍一些解决办法吧. PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中meta的charset来设置编码的,如果没有charset,就当iso8859进行处理了,而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了. 这么说是不是还不太理解,举个例子: $xml = new DOMDocument(); @$xml->loa

JSP针对XML文件操作技巧实例分析_JSP编程

本文实例讲述了JSP针对XML文件操作技巧.分享给大家供大家参考,具体如下: XML(Extensible Markup   Language)可扩展标记语言,这个基础知识在早些已经学习过.而这篇教程为什么把它放在J2EE下边呢,因为他也是J2EE的13规范之一,虽然XML是W3C万维网组织联盟指定的,并做了规范,所以说也是一种规范,我们也必须按照规范来,和JDBC,Servlet,Jsp,Ejb等一样的. 前边的文章已经介绍了XML的一些基础知识,主要是用来存储,传输数据的,但是这些数据我们怎

PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案

php中DOMDocument对于xml操作我们只要是英文是没有问题了,但如果是中文字体就会有乱码问题了,下面我们就此问题给各位介绍一些解决办法吧. PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中meta的charset来设置编码的,如果没有charset,就当iso8859进行处理了,而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了. 这么说是不是还不太理解,举个例子: $xml = new DOMDocument(); @$xml->loa

Java 中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 作者:Jeru Liu日期:November 29,2000版本:1.0 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的.InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputSt

JSP 对 XML 的操作

js|xml 本例子是参考了一些网站上有关JSP 对 XML 的操作的相关文档,又结合了一些个人的体会.例子涉及的内容是,开发的一个企业内部定餐系统后台管理端的部分代码,功能主要集中在对于餐馆基本信息的管理. 例子本身是在TOMCAT4.01 平台下运行的B/S结构的程式.有关TOMCAT 的配置,这里不做说明.只讲解一下相关文件及文件夹的目录结构. 目录结构说明:/tomcat/webapps/canyin/ -----主目录/tomcat/webapps/canyin/jsp/ -----J

Java中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行 一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的. InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputStream 中我们有 FileOutputStream 这个对象. 用F