Home > Backend Development > PHP Tutorial > PHP method to generate and obtain XML format data, php obtains xml format_PHP tutorial

PHP method to generate and obtain XML format data, php obtains xml format_PHP tutorial

WBOY
Release: 2016-07-12 08:58:00
Original
787 people have browsed it

How PHP generates and obtains XML format data, PHP obtains XML format

This article describes the method of PHP generating and obtaining XML format data. Share it with everyone for your reference, the details are as follows:

When making data interfaces, we usually need to obtain third-party data interfaces or provide data interfaces to third parties, and these data formats are usually transmitted in XML or JSON format. Here we will introduce how to use PHP to generate XML format data for the third party. Third-party calls and how to obtain XML data provided by third parties.

Generate XML format data

We assume that there is a student information table student in the system, which needs to be provided to a third party for call, and has id, name, sex, age to record the student's name, gender, age and other information respectively.

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;

Copy after login

First, create the createXML.php file, connect to the database, and obtain data.

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']
  );
}

Copy after login

At this time, the data is saved in $arr. You can use print_r to print the data for testing.
Next, create xml, loop the array, and write data to the node corresponding to 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();

Copy after login

We called PHP’s built-in class DOMDocument to process and generate xml. Please click here to see the final generated xml format

<&#63;xml version="1.0" encoding="utf-8"&#63;>
<root>
 <data>
  <name>李王皓</name>
  <sex>男</sex>
  <age>21</age>
 </data>
 ...
</root>

Copy after login

Get XML format data

Now we assume that we want to obtain student information from a third party. The data format is XML. We need to use PHP to parse the XML, and then display or write the parsed data to the local database. The key step here is parsing XML.

PHP has many methods to parse XML. PHP provides a built-in XMLReader class that can sequentially browse through the nodes of the xml file. You can imagine that a cursor walks through the nodes of the entire file and grabs the required content. Using XMLReader is efficient, especially for reading very large xml data. Compared with other methods, using XMLReader consumes very little memory.

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);

Copy after login

In order to separate the data name, sex and age, we use $i%3 to determine the modulus, because in the obtained xml, the information under the node data exists as 3 child nodes.

Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP XML file operation skills", "Summary of php date and time usage", "Introduction to php object-oriented programming tutorial", "php Summary of String Usage", "Introduction Tutorial on PHP MySQL Database Operation" and "Summary of PHP Common Database Operation Skills"

I hope this article will be helpful to everyone in PHP programming.

Articles you may be interested in:

  • PHP generates json and xml type interface data formats
  • How to add CDATA tags when php generates xml
  • PHP Generate sitemap.xml map function
  • php backup database code (generate word, excel, json, xml, sql)
  • Comparison of speed and efficiency of three methods of generating XML files in PHP
  • Sharing 4 ways to generate XML files in PHP
  • php generates xml simple example code
  • php gets local image files and generates xml file output specific ideas
  • php Obtain xml data submitted through http protocol post and parse xml
  • PHP generates XML with FLASH acquisition as the ultimate solution to garbled code

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1106117.htmlTechArticleHow PHP generates and obtains XML format data, php obtains xml format. This article describes the example of PHP generating and obtaining XML format. data methods. Share it with everyone for your reference, the details are as follows: In...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template