Maison php教程 php手册 php生成xml的简单代码

php生成xml的简单代码

Jun 13, 2016 am 09:43 AM
php xml 代码 basé sur 处理 应用 建立 开发者 nombre 生成 de 简单 编码 besoin

 


当处理基于XML应用程序时,开发者经常需要建立XML编码数据结构。例如,Web中基于用户输入的XML状态模板,服务器请求XML语句,以及基于运行时间参数的客户响应。
 
    尽管XML数据结构的构建比较费时,但如果使用成熟的PHP DOM应用程序接口,一切都会变得简单明了。本文达内php培训老师将向你介绍PHP DOM应用程序接口的主要功能,演示如何生成一个正确的XML完整文件并将其保存到磁盘中。
 
    创建文档类型声明
    一般而言,XML声明放在文档顶部。在PHP中声明十分简单:只需实例化一个DOM文档类的对象并赋予它一个版本号。查看程序清单A:
    程序清单 A

 代码如下  
        // 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();
    ?>

请注意DOM文档对象的saveXML()方法。稍后我再详细介绍这一方法,现在你只需要简单认识到它用于输出XML文档的当前快照到一个文件或浏览器。在本例,为增强可读性,我已经将ASCII码文本直接输出至浏览器。在实际应用中,可将以text/XML头文件发送到浏览器。
    如在浏览器中查看输出,你可看到如下代码:
   
    添加元素和文本节点
    XML真正强大的功能是来自其元素与封装的内容。幸运的是,一旦你初始化DOM文档,很多操作变得很简单。此过程包含如下两步骤:
    对想添加的每一元素或文本节点,通过元素名或文本内容调用DOM文档对象的createElement()或createTextNode()方法。这将创建对应于元素或文本节点的新对象。
    通过调用节点的appendChild()方法,并把其传递给上一步中创建的对象,并在XML文档树中将元素或文本节点添加到父节点。
    以下范例将清楚地演示这2步骤,请查看程序清单B。

程序清单 B

 代码如下  

      // 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();
    ?>

这里,我首先创建一个名字为的根元素,并使它归于XML头文件中。然后,我建立名为的元素并使它归于根元素。最后,我又创建一个值为“pepperoni”的文本节点并使它归于元素。最终结果如下:


   
    pepperoniwww.111cn.net
   

如果你想添加另外一个topping,只需创建另外一个并添加不同的内容,如程序清单C所示。
    程序清单C

 代码如下  

    // 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后的输出:
   
   
    pepperoni
    tomato
   

添加属性

前面我们接着继续为大家分享php生成xml简单实例代码(1)的内容,下面北京php培训接着继续为大家分享php生成xml简单实例代码(2)的内容。
 
通过使用属性,你也可以添加适合的信息到元素。对于PHP DOM API,添加属性需要两步:首先用DOM文档对象的createAttribute()方法创建拥有此属性名字的节点,然后将文档节点添加到拥有属性值的属性节点。详见程序清单D。
    程序清单 D
 

 代码如下  
       // 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();
    ?>
    输出如下所示:
   
   
    pepperoni
   

    添加CDATA模块和过程向导
    虽然不经常使用CDATA模块和过程向导,但是通过调用DOM文档对象的createCDATASection()和createProcessingInstruction()方法, PHP API 也能很好地支持CDATA和过程向导,请见程序清单E。
    程序清单 E

 代码如下  
        // 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();
    ?>
    输出如下所示:
   
   
    pepperoni
        Customer requests that pizza be sliced into 16 square pieces
    ]]>
   
   


保存结果
    一旦已经实现你的目标,就可以将结果保存在一个文件或存储于PHP的变量。通过调用带有文件名的save()方法可以将结果保存在文件中,而通过调用saveXML()方法可存储于PHP的变量。请参考以下实例(程序清单F):
    程序清单 F
 

 代码如下  
       // 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 = "";
    $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; $ilength-1; $i++)
    {
    if(strpos($x->item($i)->nodeValue,"fang")!==false)
    {
    echo $x->item($i)->parentNode->childNodes->item(1)->nodeValue;
    }
    }
    ?>
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Top 10 du classement mondial de la plate-forme de trading de devises virtuels numériques (2025 classement faisant autorité) Top 10 du classement mondial de la plate-forme de trading de devises virtuels numériques (2025 classement faisant autorité) Mar 06, 2025 pm 04:36 PM

En 2025, les plateformes mondiales de trading de devises virtuelles numériques sont farouchement compétitives. OKX se classe d'abord avec sa forte force technique et sa stratégie de fonctionnement mondiale, et Binance suit de près avec une liquidité élevée et des frais faibles. Des plates-formes telles que Gate.io, Coinbase et Kraken sont à l'avant-garde avec leurs avantages respectifs. La liste couvre les plateformes de trading telles que Huobi, Kucoin, BitFinex, Crypto.com et Gemini, chacune avec ses propres caractéristiques, mais l'investissement devrait être prudent. Pour choisir une plate-forme, vous devez prendre en compte des facteurs tels que la sécurité, la liquidité, les frais, l'expérience utilisateur, la sélection des devises et la conformité réglementaire, et investir rationnellement

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Top 10 des échanges dans le cercle des devises en 2025 Dernier classement des applications de devises numériques Top 10 des échanges dans le cercle des devises en 2025 Dernier classement des applications de devises numériques Feb 27, 2025 pm 06:33 PM

Classement des dix principales plates-formes de trading de devises virtuelles (dernier en 2025): Binance: le leader mondial, la liquidité élevée et la réglementation ont attiré l'attention. OKX: grande base d'utilisateurs, prend en charge plusieurs devises et fournit un trading à effet de levier. GATE.IO: une échange senior, avec une variété de méthodes de paiement de la monnaie fiduciaire, fournissant une variété de paires de trading et de produits d'investissement. Bitget: Échange de dérivés, liquidité élevée, frais faibles. Huobi: Un ancien échange qui prend en charge une variété de devises et de paires de trading. Coinbase: un échange américain bien connu, strictement réglementé. Phemex et ainsi de suite.

Top 10 des plates-formes de trading de devises numériques La dernière liste des 10 principales plateformes de trading de devises numériques Top 10 des plates-formes de trading de devises numériques La dernière liste des 10 principales plateformes de trading de devises numériques Mar 17, 2025 pm 05:57 PM

Top 10 des plates-formes de trading de devises numériques: 1. Okx, 2. Binance, 3. Gate.io, 4. Huobi Global, 5. Kraken, 6. Coinbase, 7. Kucoin, 8. Bitfinex, 9. Crypto.com, 10. Gemini, ces échanges ont leurs propres caractéristiques et les utilisateurs peuvent choisir la plate-forme qui leur convient sur des facteurs tels que la sécurité, les frais de sécurité, les frais de la sécurité, les frais de sécurité, les arêtes de la sécurité.

Top 10 des plateformes de trading pour les applications de devises numériques, recommandations d'applications de plateforme de spéculation de la devise régulières Top 10 des plateformes de trading pour les applications de devises numériques, recommandations d'applications de plateforme de spéculation de la devise régulières Mar 07, 2025 pm 06:51 PM

Cet article recommande de dix applications de transactions numériques: 1. Lorsque vous choisissez une plate-forme, vous devez prendre en compte des facteurs tels que la sécurité, la liquidité, les frais de transaction, la sélection des devises, l'interface utilisateur, le support du service client et la conformité réglementaire, et évaluer soigneusement les risques et ne jamais suivre aveuglément la tendance.

See all articles