首页 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; 
	}
登录后复制

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);
登录后复制

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();
登录后复制

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

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

本文地址:

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

xml文件是干嘛的 xml文件是干嘛的 Aug 03, 2023 am 09:38 AM

XML文件是用于描述和传输数据的一种标记语言。它以其可扩展性、可读性和灵活性而闻名,广泛应用于Web应用程序、数据交换和Web服务。XML的格式和结构使得数据的组织和解释变得简单明了,从而提高了数据的交换和共享效率 。

xml文件打开方法 xml文件打开方法 Feb 22, 2024 pm 04:04 PM

常见的XML文件打开方法:1、文本编辑器;2、浏览器;3、XML编辑器;4、集成开发环境;5、Microsoft Excel等等。

xml文件是什么 xml文件是什么 Jan 04, 2021 am 10:59 AM

xml文件一般指里面写有可扩展标记语言的文件,XML是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

xml文件怎么去打开 xml文件怎么去打开 Jan 10, 2024 pm 03:44 PM

打开 XML即可扩展标记语言文件的方法是:1、在计算机上安装一个文本编辑软件;2、打开文本编辑软件,然后在菜单中选择“文件”->“打开”;3、在弹出的文件浏览器窗口中,找到要打开的 XML 文件,选中它并点击“打开”;4、系统将使用您选择的文本编辑软件打开 XML 文件,并显示其内容。

怎么打开xml文件 怎么打开xml文件 Aug 02, 2023 pm 03:35 PM

xml文件可以使用文本编辑器、浏览器、XML编辑器和集成开发环境打开。1、文本编辑器,只需右键单击文件并选择适当的编辑器即可打开;2、浏览器,只需双击文件或将其拖放到浏览器窗口中即可打开;3、XML编辑器,这些工具具有XML语法的高亮显示、自动完成、语法检查和验证等功能,使我们能够更方便地编辑和管理XML文件;4、集成开发环境,供专门的功能来创建、编辑和调试XML文件。

在PHP中实现如何从XML文件中提取特定的数据 在PHP中实现如何从XML文件中提取特定的数据 Jul 28, 2023 pm 01:52 PM

在PHP中实现如何从XML文件中提取特定的数据XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它具有可读性强和易于解析的特点。在PHP中,我们可以使用各种方式来提取XML文件中的特定数据,以满足我们的需求。要从XML文件中提取数据,首先我们需要将XML文件加载到PHP中,可以使用SimpleXMLElement类来完成这个任务。然后,我们可以使用

PHP和XML:如何解析XML文件 PHP和XML:如何解析XML文件 Aug 08, 2023 am 09:33 AM

PHP和XML:如何解析XML文件概述:在开发Web应用程序时,经常需要处理XML数据。PHP提供了许多内置的函数和类来解析和操作XML文件。本文将介绍如何使用PHP解析XML文件,并提供一些代码示例。PHP内置的XML解析函数PHP提供了一些内置的函数来解析XML文件:simplexml_load_file():将XML

php如何使用XML? php如何使用XML? Jun 04, 2023 pm 09:51 PM

PHP是一种广泛使用的开源服务器端脚本语言,它具有开发简单、快速以及可扩展性好的优点。同时,XML(可扩展标记语言)也被广泛使用,它用于存储、传输和显示数据。在PHP中,XML在处理数据和信息方面也有着重要的作用,因为它可以充分利用XML的优势来快速轻松地处理数据。下面我们来详细了解如何使用PHP处理XML。引入XML文件在PHP中,通过数据流、文件和URL

See all articles