搜索
首页php教程php手册php中DOMDocument与SimpleXML创建与解析xml程序

通过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&#39;t forget the meeting!</body> 
	</note> 

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

<?php 
	$xmlDoc = new DOMDocument(); 
	$xmlDoc->load("note.xml"); 
	 
	print $xmlDoc->saveXML(); 
	 
	 
	//以上代码的输出: 
	//George John Reminder Don&#39;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&#39;t forget the meeting!</body> 
	</note> 

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

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

<?php 
	//创建一个新文档 
	$dom = new DOMDocument(&#39;1.0&#39;); 
	 
	//创建根元素book,并将其添加到文档中 
	$book = $dom->appendChild($dom->createElement(&#39;book&#39;)); 
	 
	//创建一个title元素,并将其添加到$book中 
	$title = $book->appendChild($dom->createElement(&#39;title&#39;)); 
	$title->appendChild($dom->createTextNode(&#39;Php Book&#39;)); 
	//为title元素的添加属性cover,属性值soft 
	$title->setAttribute(&#39;cover&#39;,&#39;soft&#39;); 
	 
	//创建author元素,并将其添加到$book中 
	$kaifabu = $book->appendChild($dom->createElement(&#39;author&#39;)); 
	//为author元素添加文本 
	$kaifabu->appendChild($dom->createTextNode(&#39;kaifabu&#39;)); 
	 
	//创建author元素,并将其添加到$book中 
	$kaifabu = $book->appendChild($dom->createElement(&#39;author&#39;)); 
	//为author元素添加文本 
	$kaifabu->appendChild($dom->createTextNode(&#39;Younker&#39;)); 
	 
	//将格式化的DOM文档输出为XML 
	$dom->formatOutput = true; 
	 
	//生成books.xml文件 
	$dom->save(&#39;books.xml&#39;); 
	//此步把生成的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(&#39;books.xml&#39;); 
	//获取title标签的内容 
	$title = $sx->title; 
	//因为有两个author元素,通过循环获取每个author元素内容 
	$authors = &#39;&#39;; 
	foreach($sx->author as $author) 
	{ 
	 $authors .= &#39;&&#39; . $author; 
	} 
	$authors = substr($authors, 1); 
	echo $title . &#39;:&#39; . $authors; 
	  
	//输出结果如下: 
	//Php Book:kaifabu&Younker 

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

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 

文章网址:

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

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系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无尽的。

热门文章

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

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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