PHP DOMDocument实现XML读写操作

admin 2014年12月16日 XML和SQL学习 775次阅读 查看评论

在php中操作xml文档我们可以直接调用DOMDocument类或使用simplexml_load_string类来操作,这些都不需要加载算是内置函数了,我们直接使用。


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



« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:xmlsimplexml

相关日志:

«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合