加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-07-24 09:30:25 所属栏目:PHP教程 来源:
导读:通过DOM扩展创建一个DOMDocument对象,通过DOMDocument对象的方法向文档添加元素,最后通过save()或saveXML()方法来生成文档,也可以通过SimpleXML来快速解析xml文档.

例子:DOM XML 解析器函数是 PHP 核心的组成部分
通过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 
$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()); 
?> 
 
//输出结果如下: 
//开源代码Cuoxin.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 版本.
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章