|
代码如下:/*
<班级> <学生 number="101"> <名字>孙悟空名字> <名字>孙行者名字> <年龄>123年龄> <介绍>介绍> 学生>
<学生 number="10"2"> <名字>白骨精名字> <年龄>140年龄> <介绍>介绍内容介绍> 学生> 班级> */ $xmldoc = new DOMDocument('1.0','UTF-8'); $xmldoc->load('datas.xml');
$itemsNodeList = $xmldoc->getElementsbyTagName('学生'); $itemElement = $itemsNodeList->item(0);//得到第一个完整的学生信息节点 $itemChildsNodeList = $itemElement->getElementsbyTagName('名字');//得到子节点“名字”,也许有多个名字 $itemChildNode = $itemChildsNodeList->item(0);//得到第一个名字节点 echo $itemChildNode->nodeValue;//输出节点值
//封装成函数 $nodeArr = array('名字','年龄','介绍'); function getNodeVal($xmldoc,$itemsName,$nodeArr){ $items = $xmldoc->getElementsByTagName($itemsName); for($i=0; $i < $items->length; $i++){ $item = $items->item($i); foreach($nodeArr as $node){ $data[$i][] = $item->getElementsByTagName($node)->item(0)->nodeValue; } } return $data; }
$data = getNodeVal($xmldoc,'学生',$nodeArr); print_r($data);
代码如下://添加节点 $xmldoc = new DOMDocument('1.0','UTF-8'); $xmldoc->load('datas.xml'); $items = $xmldoc->getElementsByTagName('班级')->item(0);//根节点 $student = $xmldoc->createElement('学生');//创建一个新的学生节点 $stu_name = $xmldoc->createElement('名字','张三'); $stu_age = $xmldoc->createElement('年龄','15'); $stu_intro = $xmldoc->createElement('介绍','动手能力强且成绩稳定'); $items->appendChild($student); $student->appendChild($stu_name); $student->appendChild($stu_age); $student->appendChild($stu_intro); $bytes = $xmldoc->save('datas.xml'); echo ($bytes)? "写入了: $bytes 字节" : '保存失败';
//删除节点 $xmldoc = new DOMDocument('1.0','UTF-8'); $xmldoc->load('datas.xml'); $student = $xmldoc->getElementsByTagName('学生')->item(2);//直接找到要删除的节点 $student->parentNode->removeChild($student);//父节点的删除方法 $xmldoc->save('datas.xml');
//修改节点值 $student = $xmldoc->getElementsByTagName('学生')->item(2); $student->getElementsByTagName('年龄')->item(0)->nodeValue += 10; $student->setAttribute('id','110'); $xmldoc->save('datas.xml');
//应用 Xpath 查找节点
$xml = new DOMDocument('1.0','UTF-8'); $xml->load('dat.xml'); $xpath = new DOMXPath($xml); $nodeList = $xpath->query('/aaa/bbb/ddd/fff'); echo $nodeList->item(0)->nodeValue;
//SimpleXML 类操作 xml /*
1001 200元 大明 天龙八部
1002 321元 张三 笑傲江湖
1004 182元 李四 读者
*/ $xml = simplexml_load_file('books.xml'); $books = $xml->book; echo $books[1]->title . $books[1]['house'];//直接指向第二本书 foreach($xml as $item){ echo $item->title,' ',$item['house'],' '; }
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|