Home Backend Development PHP Tutorial Simple code for php to generate xml_PHP tutorial

Simple code for php to generate xml_PHP tutorial

Jul 13, 2016 am 10:39 AM
php xml code based on deal with application Establish Developer number generate of Simple coding need


When working with XML-based applications, developers often need to create XML-encoded data structures. For example, XML status templates in the Web based on user input, server request XML statements, and client responses based on runtime parameters.

Although the construction of XML data structure is time-consuming, if you use the mature PHP DOM application interface, everything will become simple and clear. In this article, Dane PHP training teacher will introduce you to the main functions of the PHP DOM application interface and demonstrate how to generate a correct complete XML file and save it to disk.

Create a document type declaration
Generally speaking, XML declarations are placed at the top of the document. Declaration in PHP is very simple: just instantiate an object of the DOM document class and give it a version number. View Program Listing A:
Program List A

The code is as follows
<?php
代码如下
<?php
// create doctype
$dom = new DOMDocument("1.0");
// display document in browser as plain text
// display document in browser as plain text
// for readability purposes
header("Content-Type: text/plain");
// save and display tree
echo $dom->saveXML();
    ?>
// create doctype

$dom = new DOMDocument("1.0");
// display document in browser as plain text
// display document in browser as plain text
// for readability purposes
header("Content-Type: text/plain");
// save and display tree
echo $dom->saveXML();
?>

Please note the saveXML() method of the DOM document object. I'll go into more detail about this method later, but for now you just need to briefly realize that it is used to output the current snapshot of the XML document to a file or browser. In this example, I've output the ASCII text directly to the browser to enhance readability. In practical applications, text/XML header files can be sent to the browser.

If you view the output in a browser, you can see the following code:

<?xml version="1.0"?>
 代码如下  

 <?php
// create doctype
$dom = new DOMDocument("1.0");
// display document in browser as plain text
// for readability purposes
header("Content-Type: text/plain");
// create root element
$root = $dom->createElement("toppings");
    $dom->appendChild($root);
    // create child element
    $item = $dom->createElement("item");
    $root->appendChild($item);
    // create text node
    $text = $dom->createTextNode("pepperoniwww.111cn.net");
    $item->appendChild($text);
    // save and display tree
    echo $dom->saveXML();
    ?>

Add elements and text nodes The real power of XML comes from its elements and encapsulated content. Fortunately, once you initialize the DOM document, many operations become very simple. This process includes the following two steps: For each element or text node you want to add, call the createElement() or createTextNode() method of the DOM document object through the element name or text content. This creates a new object corresponding to the element or text node. Add an element or text node to a parent node in the XML document tree by calling the node's appendChild() method, passing it the object created in the previous step. The following example will clearly demonstrate these 2 steps, please see Listing B. Program List B
The code is as follows
<?php<🎜> // create doctype<🎜> $dom = new DOMDocument("1.0");<🎜> // display document in browser as plain text<🎜> // for readability purposes<🎜> header("Content-Type: text/plain");<🎜> // create root element<🎜> $root = $dom->createElement("toppings"); $dom->appendChild($root); // create child element $item = $dom->createElement("item"); $root->appendChild($item); // create text node $text = $dom->createTextNode("pepperoniwww.111cn.net"); $item->appendChild($text); // save and display tree echo $dom->saveXML(); ?>

Here, I first create a root element named <toppings> and place it in the XML header file. Then, I create an element called <item> and make it the root element. Finally, I create a text node with a value of "pepperoni" and assign it to the <item> element. The final result is as follows:

<?xml version="1.0"?>
<toppings>
<item>pepperoniwww.111cn.net</item>
</toppings>

If you want to add another topping, just create another <item> and add different content, as shown in Listing C.
Program List C

The code is as follows
 代码如下  

<?php
// create doctype
$dom = new DOMDocument("1.0");
// display document in browser as plain text
// for readability purposes
header("Content-Type: text/plain");
// create root element
$root = $dom->createElement("toppings");
    $dom->appendChild($root);
    // create child element
    $item = $dom->createElement("item");
    $root->appendChild($item);
    // create text node
    $text = $dom->createTextNode("pepperoni");
    $item->appendChild($text);
    // create child element
    $item = $dom->createElement("item");
    $root->appendChild($item);
    // create another text node
    $text = $dom->createTextNode("tomato");
    $item->appendChild($text);
    // save and display tree
    echo $dom->saveXML();
    ?>
    以下是执行程序清单C后的输出:
    <?xml version="1.0"?>
    <toppings>
    <item>pepperoni</item>
    <item>tomato</item>
    </toppings>

<?php<🎜> // create doctype<🎜> $dom = new DOMDocument("1.0");<🎜> // display document in browser as plain text<🎜> // for readability purposes<🎜> header("Content-Type: text/plain");<🎜> // create root element<🎜> $root = $dom->createElement("toppings"); $dom->appendChild($root); // create child element $item = $dom->createElement("item"); $root->appendChild($item); // create text node $text = $dom->createTextNode("pepperoni"); $item->appendChild($text); // create child element $item = $dom->createElement("item"); $root->appendChild($item); // create another text node $text = $dom->createTextNode("tomato"); $item->appendChild($text); // save and display tree echo $dom->saveXML(); ?> The following is the output after executing Listing C: <?xml version="1.0"?> <toppings> <item>pepperoni</item> <item>tomato</item> </toppings>

Add attributes

Earlier we continued to share with you the content of the simple example code (1) for generating XML by PHP. Next, Beijing PHP training will continue to share the content of the simple example code (2) for generating XML by PHP.

By using attributes, you can also add appropriate information to elements. For the PHP DOM API, adding an attribute requires two steps: first create a node with the attribute name using the createAttribute() method of the DOM document object, and then add the document node to the attribute node with the attribute value. See Listing D for details.
Program List D

The code is as follows
<?php
 代码如下  
   <?php
// create doctype
$dom = new DOMDocument("1.0");
// display document in browser as plain text
// for readability purposes
header("Content-Type: text/plain");
// create root element
$root = $dom->createElement("toppings");
    $dom->appendChild($root);
    // create child element
    $item = $dom->createElement("item");
    $root->appendChild($item);
    // create text node
    $text = $dom->createTextNode("pepperoni");
    $item->appendChild($text);
    // create attribute node
    $price = $dom->createAttribute("price");
    $item->appendChild($price);
    // create attribute value node
    $priceValue = $dom->createTextNode("4");
    $price->appendChild($priceValue);
    // save and display tree
    echo $dom->saveXML();
    ?>
    输出如下所示:
    <?xml version="1.0"?>
    <toppings>
    <item price="4">pepperoni</item>
    </toppings>
// create doctype $dom = new DOMDocument("1.0"); // display document in browser as plain text // for readability purposes header("Content-Type: text/plain"); // create root element $root = $dom->createElement("toppings"); $dom->appendChild($root); // create child element $item = $dom->createElement("item"); $root->appendChild($item); // create text node $text = $dom->createTextNode("pepperoni"); $item->appendChild($text); // create attribute node $price = $dom->createAttribute("price"); $item->appendChild($price); // create attribute value node $priceValue = $dom->createTextNode("4"); $price->appendChild($priceValue); // save and display tree echo $dom->saveXML(); ?> The output is as follows: <?xml version="1.0"?> <toppings> <item price="4">pepperoni</item> </toppings>

Add CDATA module and process wizard
Although CDATA modules and process wizards are not often used, the PHP API can also support CDATA and process wizards well by calling the createCDATASection() and createProcessingInstruction() methods of the DOM document object, see Program Listing E.
Program List E

The code is as follows
<?php
代码如下
<?php
// create doctype
// create doctype
$dom = new DOMDocument("1.0");
// display document in browser as plain text
// for readability purposes
header("Content-Type: text/plain");
// create root element
$root = $dom->createElement("toppings");
    $dom->appendChild($root);
    // create child element
    $item = $dom->createElement("item");
    $root->appendChild($item);
    // create text node
    $text = $dom->createTextNode("pepperoni");
    $item->appendChild($text);
    // create attribute node
    $price = $dom->createAttribute("price");
    $item->appendChild($price);
    // create attribute value node
    $priceValue = $dom->createTextNode("4");
    $price->appendChild($priceValue);
    // create CDATA section
    $cdata = $dom->createCDATASection(" Customer requests that pizza be sliced into 16 square pieces ");
    $root->appendChild($cdata);
    // create PI
    $pi = $dom->createProcessingInstruction("pizza", "bake()");
    $root->appendChild($pi);
    // save and display tree
    echo $dom->saveXML();
    ?>
    输出如下所示:
    <?xml version="1.0"?>
    <toppings>
    <item price="4">pepperoni</item>
    <![CDATA[
Customer requests that pizza be sliced into 16 square pieces
]]>
    <?pizza bake()?>
    </toppings>
// create doctype // create doctype $dom = new DOMDocument("1.0"); // display document in browser as plain text // for readability purposes header("Content-Type: text/plain"); // create root element $root = $dom->createElement("toppings"); $dom->appendChild($root); // create child element $item = $dom->createElement("item"); $root->appendChild($item); // create text node $text = $dom->createTextNode("pepperoni"); $item->appendChild($text); // create attribute node $price = $dom->createAttribute("price"); $item->appendChild($price); // create attribute value node $priceValue = $dom->createTextNode("4"); $price->appendChild($priceValue); // create CDATA section $cdata = $dom->createCDATASection("Customer requests that pizza be sliced ​​into 16 square pieces"); $root->appendChild($cdata); // create PI $pi = $dom->createProcessingInstruction("pizza", "bake()"); $root->appendChild($pi); // save and display tree echo $dom->saveXML(); ?> The output is as follows: <?xml version="1.0"?> <toppings> <item price="4">pepperoni</item> <![CDATA[<🎜> Customer requests that pizza be sliced ​​into 16 square pieces<🎜> ]]> <?pizza bake()? > </toppings>


Save results
Once you have achieved your goal, you can save the results in a file or store them in a PHP variable. The results can be saved in a file by calling the save() method with a file name, or in a PHP variable by calling the saveXML() method. Please refer to the following example (Program List F):
Program List F

 代码如下  
   <?php
    // create doctype
    $dom = new DOMDocument("1.0");
    // create root element
    $root = $dom->createElement("toppings");
    $dom->appendChild($root);
    $dom->formatOutput=true;
    // create child element
    $item = $dom->createElement("item");
    $root->appendChild($item);
    // create text node
    $text = $dom->createTextNode("pepperoni");
    $item->appendChild($text);
    // create attribute node
    $price = $dom->createAttribute("price");
    $item->appendChild($price);
    // create attribute value node
    $priceValue = $dom->createTextNode("4");
    $price->appendChild($priceValue);
    // create CDATA section
    $cdata = $dom->createCDATASection(" Customer requests that pizza be
    sliced into 16 square pieces ");
    $root->appendChild($cdata);
    // create PI
    $pi = $dom->createProcessingInstruction("pizza", "bake()");
    $root->appendChild($pi);
    // save tree to file
    $dom->save("order.xml");
    // save tree to string
    $order = $dom->save("order.xml");
    ?>
    下面是实际的例子,大家可以测试下。
    xml.php(生成xml)
    <?
    $conn = mysql_connect('localhost', 'root', '123456') or die('Could not connect: ' . mysql_error());
    mysql_select_db('vdigital', $conn) or die ('Can't use database : ' . mysql_error());
    $str = "SELECT id,username FROM `admin` GROUP BY `id` ORDER BY `id` ASC";
    $result = mysql_query($str) or die("Invalid query: " . mysql_error());
    if($result)
    {
    $xmlDoc = new DOMDocument();
    if(!file_exists("01.xml")){
    $xmlstr = "<?xml version='1.0' encoding='utf-8' ?><message></message>";
    $xmlDoc->loadXML($xmlstr);
    $xmlDoc->save("01.xml");
    }
    else { $xmlDoc->load("01.xml");}
    $Root = $xmlDoc->documentElement;
    while ($arr = mysql_fetch_array($result)){
    $node1 = $xmlDoc->createElement("id");
    $text = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["id"]));
    $node1->appendChild($text);
    $node2 = $xmlDoc->createElement("name");
    $text2 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["username"]));
    $node2->appendChild($text2);
    $Root->appendChild($node1);
    $Root->appendChild($node2);
    $xmlDoc->save("01.xml");
    }
    }
    mysql_close($conn);
    ?>
    test.php(应用测试)
    <?
    $xmlDoc = new DOMDocument();
    $xmlDoc->load("http://localhost/xml/xml.php");
    $x=$xmlDoc->getElementsByTagName('name');
    for ($i=0; $i<=$x->length-1; $i++)
    {
    if(strpos($x->item($i)->nodeValue,"fang")!==false)
    {
    echo $x->item($i)->parentNode->childNodes->item(1)->nodeValue;
    }
    }
    ?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/730237.htmlTechArticle当处理基于XML应用程序时,开发者经常需要建立XML编码数据结构。例如,Web中基于用户输入的XML状态模板,服务器请求XML语句,以及基于运...
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

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

CakePHP Date and Time

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

CakePHP File upload

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

Discuss CakePHP

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP Quick Guide

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

How To Set Up Visual Studio Code (VS Code) for PHP Development

Top 10 Global Digital Virtual Currency Trading Platform Ranking (2025 Authoritative Ranking) Top 10 Global Digital Virtual Currency Trading Platform Ranking (2025 Authoritative Ranking) Mar 06, 2025 pm 04:36 PM

Top 10 Global Digital Virtual Currency Trading Platform Ranking (2025 Authoritative Ranking)

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

CakePHP Creating Validators

See all articles