欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP生成和获取XML格式数据

程序员文章站 2024-04-06 10:52:55
...

在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以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格式请