张博
摘 要:通过PHP的预定义类,PHP可以在任何时候操作XML文档中的数据,实现文档内容的显示、添加、修改、删除。
关键词:PHP;XML;类定义;操作
1 创建XML文档
如有以下class.xml文档。
<?xml version="1.0" encoding="gb2312"?>
2 PHP对XML文档的操作
2.1 PHP实现对XML文档结构的遍历与内容的显示
要实现对XML文档结构的遍历与内容的显示,则需要用到以下方法:
⑴Load():Mixed load(string filename);用于加载一个filename指定名称的xml文件。
⑵getElementByTagName():DOMNodeListgetElementByTagNames(string name);返回一个节点列表,参数name为指定标签的名称。
⑶item():DomNode item(int index);返回dom节点列表中的指定节点,参数index为指定的项数。
⑷显示class.xml内容的相关代码:
<?php
$dom=new DOMDocument;
$dom->load("class.xml");
$root=$dom->getElementsByTagName("CLASS");
$root=$root->item(0);
$uid=$dom->getElementsByTagName("STUDENT");
foreach ($uid as $uidData){
foreach ($uidData->attributes as $attrib){
echo $attribName=$attrib->nodeName.":";
echo $attribValue=$attrib->nodeValue;
echo "
";}}?>。
2.1 添加XML数据
添加XML数据就是对其节点的操作,相关步骤如下:
⑴找到需要添加节点的父节点
$root=$dom->getElementsByTagName("CLASS");
$root=$root->item(0);
⑵在这个父节点中创建子节点
$newclass=$root->appendChild(new DOMElement('STUDENT'));
⑶在子节点中添加属性和值
$newclass->setAttributeNode(new DOMAttr("attributename", "values"));其中"attributename"为子节点中的属性名,"values"为添加的属性值。
⑷保存文件。$dom->save("class.xml");
⑸向class.xml文档中添加数据的主要代码是:
$newclass->setAttributeNode(new DOMAttr("no", "003"));
$newclass->setAttributeNode(new DOMAttr("name", "alice"));
$newclass->setAttributeNode(newDOMAttr("tel","027567"));
$dom->save("class.xml");
2.3 修改XML数据
对XML文档数据的修改,其实就是找到满足条件的节点记录,对相应的属性赋予新的值,并添加到原来的XML文件中,还是以class.xml文件为例,主要代码是:
foreach ($class as $newchann){
foreach ($newchann->attributes as $newAttri){
if($newAttri->nodeName=="no"){
if($newAttri->nodeValue=="003"){
$newchann->setAttribute("tel","888888");//使用函数对tel的值进行更改}}。
2.4 删除XML数据
对XML数据的删除,主要用到了函数 DOMNode removeChild(DOMNode oldnode),
DOMNode oldnode为要删除的某个数据项,并将删除的后的文档数据重新存于另外一个xml文档。主要代码为:
$del=$class->item(1);
$all->removeChild($del);
$dom->save("temp.xml");
$dom->load("temp.xml");表示删除后的XML数据将保存在temp.xml文件中。
3 结语
PHP操作XML文件,主要是应用PHP预定义的用于操作XML文件的类及类中相关的方法实现的,在目前常见的新闻发布、论坛中,通过读取XML文件中的数据显示、添加、修改相关内容都是在以上基础操作上再次细化设计而成,其应用成果都得以广范应用。
[参考文献]
[1]许登旺,邹天思,潘凯华.PHP程序开发范例宝典.明日科技.人民邮电出版社,2007.10.
[2]丘广华,张文敏.XML编程实例教程.科学出版社,2004.04.