国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP生成和獲取XML格式數據的方法

2020-03-22 18:18:37
字體:
來源:轉載
供稿:網友
本文實例講述了PHP生成和獲取XML格式數據的方法。分享給大家供大家參考,具體如下:在做數據接口時,我們通常要獲取第三方數據接口或者給第三方提供數據接口,而這些數據格式通常是以XML或者JSON格式傳輸,這里將介紹如何使用PHP生成XML格式數據供第三方調用以及如何獲取第三方提供的XML數據。生成XML格式數據我們假設系統中有一張學生信息表student,需要提供給第三方調用,并有id,name,sex,age分別記錄學生的姓名、性別、年齡等信息。CREATE TABLE `student` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, `sex` varchar(10) NOT NULL, `age` smallint(3) NOT NULL default '0', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;首先,建立createXML.php文件,先連接數據庫,獲取數據。include_once ("connect.php"); //連接數據庫$sql = "select * from student";$result = mysql_query($sql) or die("Invalid query: " . mysql_error());while ($row = mysql_fetch_array($result)) { $arr[] = array( 'name' = $row['name'], 'sex' = $row['sex'], 'age' = $row['age']這個時候,數據就保存在$arr中,你可以使用print_r打印下數據測試。
接著,建立xml,循環數組,將數據寫入到xml對應的節點中。$doc = new DOMDocument('1.0', 'utf-8'); // 聲明版本和編碼$doc- formatOutput = true;$r = $doc- createElement_x("root");$doc- appendChild($r);foreach ($arr as $dat) { $b = $doc- createElement_x("data"); $name = $doc- createElement_x("name"); $name- appendChild($doc- createTextNode($dat['name'])); $b- appendChild($name); $sex = $doc- createElement_x("sex"); $sex- appendChild($doc- createTextNode($dat['sex'])); $b- appendChild($sex); $age = $doc- createElement_x("age"); $age- appendChild($doc- createTextNode($dat['age'])); $b- appendChild($age); $r- appendChild($b);echo $doc- saveXML();我們調用了PHP內置的類DOMDocument來處理與生成xml。最終生成的xml格式請點擊這里看效果 xml version="1.0" encoding="utf-8" root data name 李王皓 /name sex 男 /sex age 21 /age /data /root 獲取XML格式數據現在我們假設要從第三方獲取學生信息,數據格式是XML,我們需要使用PHP解析XML,然后將解析后的數據顯示或者寫入本地數據庫。而這里關鍵的一步是解析XML。PHP有很多中方法可以解析XML,其中PHP提供了內置的XMLReader類可以循序地瀏覽過xml檔案的節點,你可以想像成游標走過整份文件的節點,并抓取需要的內容。使用XMLReader是高效的,尤其是讀取非常大的xml數據,相對其他方法,使用XMLReader消耗內存非常少。header("Content-type:text/html; Charset=utf-8");$url = "http://www.helloweba.com/demo/importXML/createXML.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);為了將數據name,sex和age分開,我們使用$i%3來判斷取模,因為在獲取的xml中,節點data下的信息是以3個子節點存在的。更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP針對XML文件操作技巧總結》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》希望本文所述對大家PHP程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五河县| 成安县| 榆树市| 孟州市| 镇赉县| 金华市| 三台县| 徐水县| 南江县| 玉龙| 海林市| 固镇县| 黄陵县| 府谷县| 汝南县| 黄冈市| 宁德市| 图木舒克市| 高安市| 白银市| 东阳市| 临清市| 长治市| 延津县| 历史| 阿鲁科尔沁旗| 大田县| 登封市| 汕头市| 江口县| 忻州市| 安新县| 南华县| 庆阳市| 鲁山县| 交城县| 中江县| 贵南县| 万宁市| 阿拉尔市| 岳阳市|