程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP生成和獲取XML格式數據

PHP生成和獲取XML格式數據

編輯:關於PHP編程

在做數據接口時,我們通常要獲取第三方數據接口或者給第三方提供數據接口,而這些數據格式通常是以XML或者JSON格式傳輸,本文將介紹如何使用PHP生成XML格式數據供第三方調用以及如何獲取第三方提供的XML數據。

生成XML格式數據

我們假設系統中有一張學生信息表student,需要提供給第三方調用,並有id,name,sex,age分別記錄學生的姓名、性別、年齡等信息。

  1. CREATE TABLE `student` (   
  2.   `id` int(11) NOT NULL auto_increment,   
  3.   `name` varchar(50) NOT NULL,   
  4.   `sex` varchar(10) NOT NULL,   
  5.   `age` smallint(3) NOT NULL default '0',   
  6.   PRIMARY KEY  (`id`)   
  7. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;   

首先,建立createXML.php文件,先連接數據庫,獲取數據。

  1. include_once ("connect.php"); //連接數據庫    
  2. $sql = "select * from student";   
  3. $result = mysql_query($sql) or die("Invalid query: " . mysql_error());   
  4. while ($row = mysql_fetch_array($result)) {   
  5.     $arr[] = array(   
  6.         'name' => $row['name'],   
  7.         'sex' => $row['sex'],   
  8.         'age' => $row['age']   
  9.     );   
  10. }   

這個時候,數據就保存在$arr中,你可以使用print_r打印下數據測試。

接著,建立xml,循環數組,將數據寫入到xml對應的節點中。

  1. $doc = new DOMDocument('1.0', 'utf-8');  // 聲明版本和編碼   
  2. $doc->formatOutput = true;    
  3. $r = $doc->createElement("root");   
  4. $doc->appendChild($r);    
  5. foreach ($arr as $dat) {   
  6.     $b = $doc->createElement("data");    
  7.     $name = $doc->createElement("name");   
  8.     $name->appendChild($doc->createTextNode($dat['name']));   
  9.     $b->appendChild($name);    
  10.     $sex = $doc->createElement("sex");   
  11.     $sex->appendChild($doc->createTextNode($dat['sex']));   
  12.     $b->appendChild($sex);    
  13.     $age = $doc->createElement("age");   
  14.     $age->appendChild($doc->createTextNode($dat['age']));   
  15.     $b->appendChild($age);    
  16.     $r->appendChild($b);   
  17. }    
  18. echo $doc->saveXML();   

我們調用了PHP內置的類DOMDocument來處理與生成xml。最終生成的xml格式請

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved