现在的位置: 首页 > 综合 > 正文

PHP生成和获取XML格式数据

2018年04月14日 ⁄ 综合 ⁄ 共 1134字 ⁄ 字号 评论关闭

一、生成XML格式数据

         定义个二维数组

    $arr[]=array('name'=>李晓亮'','sex'=>'男','age'=>'24');
    $doc = new DOMDocument('1.0', 'utf-8');  // 声明版本和编码   
    $doc->formatOutput = true;    
    $r = $doc->createElement("root");   
    $doc->appendChild($r);    
    foreach ($arr as $dat) {   
        $b = $doc->createElement("data");    
        $name = $doc->createElement("name");   
        $name->appendChild($doc->createTextNode($dat['name']));   
        $b->appendChild($name);    
        $sex = $doc->createElement("sex");   
        $sex->appendChild($doc->createTextNode($dat['sex']));   
        $b->appendChild($sex);    
        $age = $doc->createElement("age");   
        $age->appendChild($doc->createTextNode($dat['age']));   
        $b->appendChild($age);    
        $r->appendChild($b);   
    }    
    echo $doc->saveXML();   

最终生成的xml

<?xml version="1.0" encoding="utf-8"?>    
<root>    
  <data>    
    <name>李晓亮</name>    
    <sex>男</sex>    
    <age>24</age>    
  </data>   
  ...   
</root> 

二、解析xml格式数据

header("Content-type:text/html; Charset=utf-8");    
$url = "http://test.php";     
$reader = new XMLReader();  //实例化XMLReader   
$reader->open($url); //获取xml   
$i=1;   
while ($reader->read()) {       
  if ($reader->nodeType == XMLReader::TEXT) { //判断node类型   
     $m = $i%3;   
     if($m==1)   
         $name = $reader->value;  //读取node值   
     if($m==2)   
         $sex = $reader->value;   
     if($m==0){   
         $age = $reader->value;   
         $arr[] = array(   
             'name' => $name,   
             'sex' => $sex,   
             'age' => $age   
         );   
     }   
     $i++;   
  }   
}   
//print_r($arr); 

【上篇】
【下篇】

抱歉!评论已关闭.