php : méthode d'exploitation XML de XMLWriter

黄舟
Libérer: 2023-03-14 10:00:02
original
1923 Les gens l'ont consulté

L'exemple de cet article décrit la méthode d'exploitation PHP du XML basée sur XMLWriter. Partagez-le avec tout le monde pour référence, les détails sont les suivants :

Après la leçon d'hier, apprenons une manière de lire et d'écrire du XML, qui tourne principalement autour de XMLWriter et XMLReader. Le premier est utilisé pour générer du XML, et le second est utilisé pour lire et analyser du XML. Sans plus tarder, jetons un coup d'œil à

1 Générer un fichier XML ou une chaîne <.>

<?php
 header("Content-type: text/html; charset=utf-8");
 $xml=new XMLWriter();
 //$xml->openUri("php://output");
 //设置输出,如果不需要保存成文件则使用上面被注释掉那句
 $xml->openUri("stu2.xml");
 //设置缩进字符串,这里设置为空串(这句和下面的setIntent也可以不要)
 $xml->setIndentString(&#39;&#39;);
 $xml->setIndent(true);
 //xml文档开始
 $xml->startDocument(&#39;1.0&#39;, &#39;utf-8&#39;);
 //创建根节点
 $xml->startElement("StudentInfo");
 $xml->startElement("Item");
 //添加属性
 $xml->writeAttribute("type","1");
 $xml->startElement("id");
 $xml->text("01");
 $xml->endElement();
 $xml->startElement("name");
 $xml->text("刘惜君");
 $xml->endElement();
 $xml->endElement();
 $xml->endElement();
 $xml->endDocument();
 //header("Content-type: text/xml");
 //取得缓冲区里的xml字符串
 //echo $xml->outputMemory();
?>
Copier après la connexion
La caractéristique de cette méthode est que chaque balise a besoin d'un endElement après la fin, et le document doit être terminé une fois le XML épissé. Il y a une sensation de "couches d'emballage"

2. Analyse XML

<?php
 header("Content-type: text/html; charset=utf-8");
 $xml=new XMLReader();
//载入xml文件,如果是字符串直接使用xml方法
 $xml->open("student.xml");
//开始读取xml
 while($xml->read()){
   //根据节点类型和元素名称取得文本节点或属性
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == &#39;item&#39;) {
     print $xml->getAttribute("id") . "</br>";
   }
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == &#39;name&#39;) {
     //移动指针到下一个节点
     $xml->read();
     //取得文本节点的值
     print $xml->value."</br>";
  }
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == &#39;age&#39;) {
     $xml->read();
     print $xml->value."</br>";
  }
 }
?>
Copier après la connexion
Cette façon d'analyser XML est plus efficace, si Si vous ne comprenez pas certaines parties, veuillez vous référer au manuel de développement PHP

Le contenu du fichier analysé est le suivant

<?xml version="1.0" encoding="utf-8"?>
<UsersInfo>
<item id="01">
<name>冯绍峰</name>
<age>30</age>
</item>
<item id="02">
<name>潘玮柏</name>
<age>29</age>
</item>
</UsersInfo>
Copier après la connexion
Voici le résultat analysé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!