首页 > php教程 > php手册 > 正文

php中DOMDocument与SimpleXML创建与解析xml程序

php中文网
发布: 2016-05-25 16:42:06
原创
1616人浏览过

通过dom扩展创建一个domdocument对象,通过domdocument对象的方法向文档添加元素,最后通过save()或savexml()方法来生成文档,也可以通过simplexml来快速解析xml文档.

例子:DOM XML 解析器函数是 PHP 核心的组成部分,无需安装就可以使用这些函数.

XML文件,将在我们的例子中使用下面的 XML 文件,代码如下:

<?xml version="1.0" encoding="ISO-8859-1" 
	<note> 
	<to>George</to> 
	<from>John</from> 
	<heading>Reminder</heading> 
	<body>Don't forget the meeting!</body> 
	</note> 
登录后复制

加载和输出 XML,我们需要初始化 XML 解析器,加载 XML,并把它输出,例子代码如下:

立即学习PHP免费学习笔记(深入)”;

<?php 
	$xmlDoc = new DOMDocument(); 
	$xmlDoc->load("note.xml"); 
	 
	print $xmlDoc->saveXML(); 
	 
	 
	//以上代码的输出: 
	//George John Reminder Don't forget the meeting 
登录后复制

假如您在浏览器窗口中查看源代码,会看到下面这些 HTML,代码如下:

<?xml version="1.0" encoding="ISO-8859-1" 
	<note> 
	<to>George</to> 
	<from>John</from> 
	<heading>Reminder</heading> 
	<body>Don't forget the meeting!</body> 
	</note> 
登录后复制

上面的例子创建了一个 DOMDocument-Object,并把 "note.xml" 中的 XML 载入这个文档对象中.

saveXML() 函数把内部 XML 文档放入一个字符串,这样我们就可以输出它.例子代码如下:

<?php 
	//创建一个新文档 
	$dom = new DOMDocument('1.0'); 
	 
	//创建根元素book,并将其添加到文档中 
	$book = $dom->appendChild($dom->createElement('book')); 
	 
	//创建一个title元素,并将其添加到$book中 
	$title = $book->appendChild($dom->createElement('title')); 
	$title->appendChild($dom->createTextNode('Php Book')); 
	//为title元素的添加属性cover,属性值soft 
	$title->setAttribute('cover','soft'); 
	 
	//创建author元素,并将其添加到$book中 
	$kaifabu = $book->appendChild($dom->createElement('author')); 
	//为author元素添加文本 
	$kaifabu->appendChild($dom->createTextNode('kaifabu')); 
	 
	//创建author元素,并将其添加到$book中 
	$kaifabu = $book->appendChild($dom->createElement('author')); 
	//为author元素添加文本 
	$kaifabu->appendChild($dom->createTextNode('Younker')); 
	 
	//将格式化的DOM文档输出为XML 
	$dom->formatOutput = true; 
	 
	//生成books.xml文件 
	$dom->save('books.xml'); 
	//此步把生成的XML以字符串形式显示 
	echo htmlentities($dom->saveXML()); 
	 
	 
	//输出结果如下: 
	//开源代码phprm.com 
	<?xml version="1.0"  
	<book> 
	  <title cover="soft">Php Book</title> 
	  <author>kaifabu</author> 
	  <author>Younker</author> 
	</book> 
登录后复制

注:如果上面生成XML这步改成$dom->save(‘books.xml’);直接生成一个books.xml文件.

下面我们利用simplexml来解析xml文件

SimpleXML 函数允许您把 XML 转换为对象,通过普通的属性选择器或数组迭代器,可以处理这个对象,就像处理任何其他对象一样.

其中的一些函数需要最新的 PHP 版本。

安装:SimpleXML 函数是 PHP 核心的组成部分,无需安装即可使用这些函数,代码如下:

<?php  
	//使用SimpleXML扩展解析XML文档,解析出来是一个对象,可以通过对象获取它的元素内容 
	$sx = simplexml_load_file('books.xml'); 
	//获取title标签的内容 
	$title = $sx->title; 
	//因为有两个author元素,通过循环获取每个author元素内容 
	$authors = ''; 
	foreach($sx->author as $author) 
	{ 
	 $authors .= '&' . $author; 
	} 
	$authors = substr($authors, 1); 
	echo $title . ':' . $authors; 
	  
	//输出结果如下: 
	//Php Book:kaifabu&Younker 
登录后复制

PHP:指示支持该函数的最早的 PHP 版本.

阿里妈妈·创意中心
阿里妈妈·创意中心

阿里妈妈营销创意中心

阿里妈妈·创意中心 0
查看详情 阿里妈妈·创意中心

SimpleXML函数

__construct() 创建一个新的 SimpleXMLElement 对象。 5 

addAttribute() 给 SimpleXML 元素添加一个属性。 5 

addChild() 给 SimpleXML 元素添加一个子元素。 5 

asXML() 从 SimpleXML 元素获取 XML 字符串。 5 

attributes() 获取 SimpleXML 元素的属性。 5 

children() 获取指定节点的子。 5 

getDocNamespaces() 获取 XML 文档的命名空间。 5 

getName() 获取 SimpleXML 元素的名称。 5 

getNamespaces() 从 XML 数据获取命名空间。 5 

registerXPathNamespace() 为下一次 XPath 查询创建命名空间语境。 5 

simplexml_import_dom() 从 DOM 节点获取 SimpleXMLElement 对象。 5 

simplexml_load_file() 从 XML 文档获取 SimpleXMLElement 对象。 5 

simplexml_load_string() 从 XML 字符串获取 SimpleXMLElement 对象。 5 

文章网址:

随意转载^^但请附上教程地址。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号