XML是很通用的数据交换格式,非常的灵

活。在PHP5中内置了一个解析xml的对象

simplexml。本节将简单的介绍一下simplexml的使用方法。

simpleXml是用来解析xml文件的。所以在使用之前需要装载xml对象。

装载simplexml对象需要调用的函数是 simplexml_load_file().典型的代码如下:

$xml = simplexml_load_file($this->fileName);

当对修改了xml文件之后,如何保存?使用simplexml的asXML方法。典型的代码如下:

$xml = simplexml_load_file($this->fileName);//加载这个文件
$xml->line[$num]->chsText= $newValue; //修改
$xml->asXML($this->fileName);//保存

 如果读取一个节点的值。先看一个XML文件:

<?xml version="1.0"?>
<catalog>
	<book id="bk101">
		<author>ZMAX</author>
		<title>XML Develop</title>
	</book>
	<book id="new add">
		<author>min.zhang</author>
		<title>ZMAX SUPER HH!</title>
	</book>
</catalog>

 

<?php
	//构造simpleXMLElement对象
	$xml = simplexml_load_file($xmlFilePath);
	//可以使用属性的方式访问子节点,通过节点的标签名可直接得到节点的内容
	foreach ($xml->book as $book)
	{
		$author = $book->author; //访问author标签
		$title= $book->title; //访问title标签
		$id = $book['id'];//访问id属性
		echo $author."<br />";
		echo $title."<br />";
		echo $id."<br />";
	}
	
	echo "<hr />";
	//遍历第一个本书的所有节点
	foreach($xml->book->children() as $field)
	{
		echo $field."<br />";
	}
	
	//修改第一本书的名称
	$i=1;
	$xml->book[$i]->title="ZMAX SUPER HH!";//修改title标签的值
	$xml->book[1]['id']="new add";//修改id属性的值
	$xml->book->publisher="publish"//增加一个pulisher标签
	
       //增加一个book项目,只需要序号的值比现有的项目的序号大就行了。
        $xml->book[3]->title="ZMAX SUPER HH!";
	$xml->book[3]['id']="new add";
	$xml->book[3]->publisher="publish"

//保存 $xml->asXML($xmlFilePath); ?>

 

 上面就是simplexml操作xml的方法。

如何通过simplexml来新建一个xml文件?

    一个简单的方法就是先用php的文件函数创建,然后再用simplexml来加载。一段典型的代码如下:

header("content-type:text/html; charset=utf-8");
			$fp = fopen($this->fileName ,"w");
			fwrite($fp,'<?xml version="1.0" encoding="utf-8"?>');
			fwrite($fp,"<lines></lines>");
			fclose($fp);
			
			
			$xml = simplexml_load_file($this->fileName);//加载这个文件

 注意使用herder可以确保UTF编码。

 

如果在中文处理中出现乱码,那么可以用iconv进行转换。请注意第二参数后面部分//INGNORE.一段典型的代码如下:

$chsText = iconv( 'utf-8','gbk//IGNORE', $line->chsText);

 

在下一节中我们将介绍joomla中是如何来操作xml文件的。

 

 


收藏
0个人 收藏