Maison php教程 php手册 怎么用php解析xml文件

怎么用php解析xml文件

May 25, 2016 pm 04:42 PM
php解析xml xml文件

xml文件是一种数据存储格式,下面小编给大家介绍php解析xml格式文件的多种方法总结介绍,DOMDocument是我们常用的解析xml一个不错的方法,下面我来给大家总结总结.

DOMElement:DOMElement DOMDocument::createElement ( string $name [, string $value ] )

创建节点元素:

String $name:节点名

String $value:节点的值

添加节点:

•DOMNode DOMNode::appendChild ( DOMNode $newnode ) 

添加子节点:

DOMNode $newnode:新节点

在dom操作中,增删改操作必须依赖于父节点

保存:

•string DOMDocument::saveXML 

保存至某个字符串中

•int DOMDocument::save ( string $filename ) 

保存至某个文件中

String $filename:文件名

删除节点

•DOMNode DOMNode::removeChild ( DOMNode $oldnode ) 

删除节点

DOMNode $oldnode:要删除的节点

更新节点

•DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) 

DOMNode $newnode:新节点

DOMNode $oldnode:原节点

添加属性

•DOMAttr DOMElement::setAttribute( string $name , string $value ) 

string $name:属性名

string $value:属性值

修改属性

DOMAttr DOMElement::setAttribute( string $name , string $value ) 

string $name:属性名

string $value:属性值

删除属性

•bool DOMElement::removeAttribute ( string $name )

string $name:要删除的属性名称

获取属性

•string DOMElement::getAttribute ( string $name )

string $name:要获取的属性值的属性名

DOMDocument还是PHP5后推出的DOM扩展的一部分,可用来建立或解析html/xml,目前只支持utf-8编码,代码如下:

$xmlstring = <<<XML 
	<?xml version=&#39;1.0&#39; 
	<document> 
	  <cmd attr=&#39;default&#39;>login</cmd> 
	  <login>imdonkey</login> 
	</document> 
	XML; 
	 
	$dom = new DOMDocument(); 
	$dom->loadXML($xmlstring); 
	print_r(getArray($dom->documentElement)); 
	 
	function getArray($node) { 
	  $array = false; 
	 
	  if ($node->hasAttributes()) { 
	    foreach ($node->attributes as $attr) { 
	      $array[$attr->nodeName] = $attr->nodeValue; 
	    } 
	  } 
	 
	  if ($node->hasChildNodes()) { 
	    if ($node->childNodes->length == 1) { 
	      $array[$node->firstChild->nodeName] = getArray($node->firstChild); 
	    } else { 
	      foreach ($node->childNodes as $childNode) { 
	      if ($childNode->nodeType != XML_TEXT_NODE) { 
	        $array[$childNode->nodeName][] = getArray($childNode); 
	      } 
	    } 
	  }//开源代码phprm.com 
	  } else { 
	    return $node->nodeValue; 
	  } 
	  return $array; 
	}
Copier après la connexion

SimpleXML

SimpleXML是PHP5后提供的一套简单易用的xml工具集,可以把xml转换成方便处理的对象,也可以组织生成xml数据,不过它不适用于包含namespace的xml,而且要保证xml格式完整(well-formed),它提供了三个方法:simplexml_import_dom、simplexml_load_file、simplexml_load_string,函数名很直观地说明了函数的作用,三个函数都返回SimpleXMLElement对象,数据的读取/添加都是通过SimpleXMLElement操作,代码如下:

$string = <<<XML 
	<?xml version=&#39;1.0&#39; 
	<document> 
	  <cmd>login</cmd> 
	  <login>imdonkey</login> 
	</document> 
	XML; 
	 
	$xml = simplexml_load_string($string); 
	print_r($xml); 
	$login = $xml->login;//这里返回的依然是个SimpleXMLElement对象 
	print_r($login); 
	$login = (string) $xml->login;//在做数据比较时,注意要先强制转换 
	print_r($login);
Copier après la connexion

SimpleXML的优点是开发简单,缺点是它会将整个xml载入内存后再进行处理,所以在解析超多内容的xml文档时可能会力不从心,如果是读取小文件,而且xml中也不包含namespace,那SimpleXML是很好的选择.

XMLReader

XMLReader也是PHP5之后的扩展(5.1后默认安装),它就像游标一样在文档流中移动,并在每个节点处停下来,操作起来很灵活,它提供了对输入的快速和非缓存的流式访问,可以读取流或文档,使用户从中提取数据,并跳过对应用程序没有意义的记录.

以一个利用google天气api获取信息的例子展示下XMLReader的使用,这里也只涉及到一小部分函数,更多还请参考官方文档,代码如下:

$xml_uri = &#39;http://www.google.com/ig/api?weather=Beijing&hl=zh-cn&#39;; 
	$current = array(); 
	$forecast = array(); 
	 
	$reader = new XMLReader(); 
	$reader->open($xml_uri, &#39;gbk&#39;); 
	while ($reader->read()) { 
	  //get current data 
	  if ($reader->name == "current_conditions" && $reader->nodeType == XMLReader::ELEMENT) { 
	    while($reader->read() && $reader->name != "current_conditions") { 
	      $name = $reader->name; 
	      $value = $reader->getAttribute(&#39;data&#39;); 
	      $current[$name] = $value; 
	    } 
	  } 
	 
	  //get forecast data 
	  if ($reader->name == "forecast_conditions" && $reader->nodeType == XMLReader::ELEMENT) { 
	    $sub_forecast = array(); 
	    while($reader->read() && $reader->name != "forecast_conditions") { 
	      $name = $reader->name; 
	      $value = $reader->getAttribute(&#39;data&#39;); 
	      $sub_forecast[$name] = $value; 
	    } 
	    $forecast[] = $sub_forecast; 
	  } 
	} 
	$reader->close();
Copier après la connexion

XMLReader和XML Parser类似,都是边读边操作,较大的差异在于SAX模型是一个“推送”模型,其中分析器将事件推到应用程序,在每次读取新节点时通知应用程序,而使用XmlReader的应用程序可以随意从读取器提取节点,可控性更好.

由于XMLReader基于libxml,所以有些函数要参考文档看看是否适用于你的libxml版本.

本文地址:

转载随意,但请附上文章地址:-)

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

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

A quoi sert le fichier XML ? A quoi sert le fichier XML ? Aug 03, 2023 am 09:38 AM

Les fichiers XML sont un langage de balisage utilisé pour décrire et transmettre des données. Il est connu pour son évolutivité, sa lisibilité et sa flexibilité et est largement utilisé dans les applications Web, l'échange de données et les services Web. Le format et la structure de XML rendent l'organisation et l'interprétation des données simples et claires, améliorant ainsi l'efficacité de l'échange et du partage des données.

méthode d'ouverture de fichier XML méthode d'ouverture de fichier XML Feb 22, 2024 pm 04:04 PM

Méthodes courantes d'ouverture de fichiers XML : 1. Éditeur de texte ; 2. Navigateur ; 3. Éditeur XML ; 4. Environnement de développement intégré ;

Qu'est-ce qu'un fichier XML Qu'est-ce qu'un fichier XML Jan 04, 2021 am 10:59 AM

Les fichiers XML font généralement référence à des fichiers dans lesquels est écrit un langage de balisage extensible. XML est un langage de balisage extensible, un sous-ensemble du langage de balisage universel standard utilisé pour marquer les documents électroniques afin de les rendre structurels.

Comment ouvrir un fichier XML Comment ouvrir un fichier XML Jan 10, 2024 pm 03:44 PM

La méthode pour ouvrir un fichier XML Extensible Markup Language est la suivante : 1. Installez un logiciel d'édition de texte sur votre ordinateur ; 2. Ouvrez le logiciel d'édition de texte, puis sélectionnez "Fichier" -> "Ouvrir" dans le menu ; fichier contextuel Dans la fenêtre du navigateur, recherchez le fichier XML que vous souhaitez ouvrir, sélectionnez-le et cliquez sur « Ouvrir » ; 4. Le système utilisera le logiciel d'édition de texte de votre choix pour ouvrir le fichier XML et afficher son contenu.

Comment ouvrir un fichier XML Comment ouvrir un fichier XML Aug 02, 2023 pm 03:35 PM

Les fichiers XML peuvent être ouverts à l'aide d'éditeurs de texte, de navigateurs, d'éditeurs XML et d'environnements de développement intégrés. 1. Éditeur de texte, cliquez simplement avec le bouton droit sur le fichier et sélectionnez l'éditeur approprié pour l'ouvrir ; 2. Navigateur, double-cliquez simplement sur le fichier ou faites-le glisser dans la fenêtre du navigateur ; 3. Éditeur XML, ces outils ont des fonctions telles que comme la mise en évidence de la syntaxe XML, l'auto-complétion, la vérification et la vérification de la syntaxe, nous permettant d'éditer et de gérer les fichiers XML plus facilement 4. Environnement de développement intégré pour les fonctions spécialisées permettant de créer, d'éditer et de déboguer un document XML ;

Comment extraire des données spécifiques de fichiers XML en PHP Comment extraire des données spécifiques de fichiers XML en PHP Jul 28, 2023 pm 01:52 PM

Comment extraire des données spécifiques de fichiers XML en PHP XML (Extensible Markup Language) est un langage de balisage utilisé pour stocker et transmettre des données. Il est très lisible et facile à analyser. En PHP, nous pouvons utiliser différentes manières pour extraire des données spécifiques à partir de fichiers XML en fonction de nos besoins. Pour extraire des données d'un fichier XML, nous devons d'abord charger le fichier XML dans PHP. Nous pouvons utiliser la classe SimpleXMLElement pour accomplir cette tâche. Nous pouvons alors utiliser

PHP et XML : comment analyser les fichiers XML PHP et XML : comment analyser les fichiers XML Aug 08, 2023 am 09:33 AM

PHP et XML : Comment analyser des fichiers XML Présentation : Lors du développement d'applications Web, vous devez souvent traiter des données XML. PHP fournit de nombreuses fonctions et classes intégrées pour analyser et manipuler les fichiers XML. Cet article explique comment analyser des fichiers XML à l'aide de PHP et fournit quelques exemples de code. Fonction d'analyse XML intégrée à PHP PHP fournit des fonctions intégrées pour analyser les fichiers XML : simplexml_load_file() :

Comment PHP utilise-t-il XML ? Comment PHP utilise-t-il XML ? Jun 04, 2023 pm 09:51 PM

PHP est un langage de script open source côté serveur largement utilisé qui présente les avantages d'un développement simple, d'une vitesse rapide et d'une bonne évolutivité. Parallèlement, XML (Extensible Markup Language) est également largement utilisé pour stocker, transmettre et afficher des données. En PHP, XML joue également un rôle important dans le traitement des données et des informations, car il peut tirer pleinement parti de XML pour traiter les données rapidement et facilement. Apprenons-en davantage sur la façon d'utiliser PHP pour traiter XML. Importez des fichiers XML en PHP, via des flux, des fichiers et des URL

See all articles