首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 產生與解析 XML 格式資料完整教學

     編輯:PHP 綜合知識

產生 XML 資料

假設資料表 student (id, name, sex, age),使用 DOMDocument 建立 XML:

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[] = ['name' => $row['name'], 'sex' => $row['sex'], 'age' => $row['age']];
}

$doc = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$root = $doc->createElement('root');
$doc->appendChild($root);

foreach ($arr as $dat) {
    $data = $doc->createElement('data');
    $name = $doc->createElement('name');
    $name->appendChild($doc->createTextNode($dat['name']));
    $data->appendChild($name);
    $sex = $doc->createElement('sex');
    $sex->appendChild($doc->createTextNode($dat['sex']));
    $data->appendChild($sex);
    $age = $doc->createElement('age');
    $age->appendChild($doc->createTextNode($dat['age']));
    $data->appendChild($age);
    $root->appendChild($data);
}
echo $doc->saveXML();

輸出範例:



  
    李王皓
    男
    21
  
  ...

解析 XML 資料

使用 XMLReader 循序讀取,記憶體效率高,適合大型 XML:

header('Content-type:text/html; Charset=utf-8');
$url = 'https://www.helloweba.com/demo/importXML/createXML.php';
$reader = new XMLReader();
$reader->open($url);

$i = 1;
while ($reader->read()) {
    if ($reader->nodeType == XMLReader::TEXT) {
        $m = $i % 3;
        if ($m == 1) $name = $reader->value;
        elseif ($m == 2) $sex = $reader->value;
        elseif ($m == 0) {
            $age = $reader->value;
            $arr[] = ['name' => $name, 'sex' => $sex, 'age' => $age];
        }
        $i++;
    }
}
// print_r($arr);

利用模 3 判斷對應欄位,因 XML 結構固定為 name、sex、age 三子節點。

延伸閱讀

更多 PHP XML 處理技巧請參考本站專題:《PHP針對XML文件操作技巧總結》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved