XML的概念,作用,及试用
一、XML的概念 XML即可扩展标记语言(ExtensibleMarkupLanguage),是一种平台无关的表示数据的方法 标记语言:是一种将文本以及文本相关的其他信息结合起来,展现出文档结构和数据处理细节的电脑文字编码 二、XML的作用和规则 不同的业务系统之间如何方便的进行数据交换,让开发人员煞费苦心。通常用的数据存放方式,常用的有两种:数据库和文件。如果使用数据库操作那么需要统一数据库,过程复繁琐。 所有能不能使用一个文件来做,能不能找到一个可以保持数据结构的文件来存放数据,XML的出现使我们有了一个很好的解决方法。 对比分析XML、HTML、HTTP概念 三、XML作用:存储和传输数据 <?xmlversion="1.0"?> <books> <bookno="1"> <author>泽瓦斯</author> <title>PHPWeb2.0开发实战</title> <introduce>主要介绍ZendFramework,作者代码值得学习</introduce> </book> <bookno="2"> <author>麦克阿瑟</author> <title>PHP高级程序设计:模式、框架与测试</title> <introduce>深入设计模式、PHP标准库和JSON</introduce> </book> </books> 作用: 在不同的系统中共享和交互数据 数据结构化和具有可读性 四、读取XML的数据 1、DOM的方式读取XML文档 Xml文件: Stu.xml <?xmlversion="1.0"encoding="UTF-8"?> <students> <studentno="1"> <name>zhangsan</name> <age>20</age> </student> <studentno="2"> <name>lisi</name> <age>21</age> </student> </students> Php程序 <?php //创建dom对象 $dom=newDOMDocument(); //加载xml文件 $dom->load("stu.xml"); //将最外层节点读入 $students=$dom->getElementsByTagName("students"); //遍历 foreach($studentsas$key=>$val){ //读取下一层节点 $stu=$val->getElementsByTagName("student"); //遍历下一层节点 foreach($stuas$k=>$v){ //获取name节点对象 $name=$v->getElementsByTagName("name"); //获取节点对象的值 $na=$name->item(0)->nodeValue; //获取age节点 $age=$v->getElementsByTagName("age"); //获取节点的值 $ag=$age->item(0)->nodeValue; } } ?> 五、Php创建xml文件 创建XML: 声明DOM对象:newDOMDocument() 创建节点:createElement() 给子节点赋值 创建文本节点:createTextNode() 添加子节点:appendChild() 创建节点属性:createAttribute() 给属性节点赋值 创建包含<![CDATA[数据]]>的节点:createCDATASection 例子: 1、从数据库中查询数据得到数据数组 2、将数组中的数据循环遍历 3、循环的过程中创建节点,并存储数据数据 4、将XML保存为文件 注意: 使用DomDocument生成XML文件 创建节点使用createElement方法, 创建文本内容使用createTextNode方法, 添加子节点使用appendChild方法, 创建属性使用createAttribute方法 例子: <?PHP $data_array=array( array( 'title'=>'title1', 'content'=>'content1', 'pubdate'=>'2014/9/2', ), array( 'title'=>'title2', 'content'=>'content2', ) ); //属性数组 $attribute_array=array( 'title'=>array( 'size'=>1 ) ); //创建一个XML文档并设置XML版本和编码。。 $dom=newDomDocument('1.0','utf-8'); //创建根节点 $article=$dom->createElement('article'); $dom->appendchild($article); foreach($data_arrayas$data){ $item=$dom->createElement('item'); $article->appendchild($item); create_item($dom,$item,$data,$attribute_array); } //输出生成的xml文件 echo$dom->saveXML(); //在磁盘上保存 $dom->save("order.xml"); functioncreate_item($dom,$attribute){ if(is_array($data)){ foreach($dataas$key=>$val){ //创建元素 $$key=$dom->createElement($key); $item->appendchild($$key); //创建元素值 $text=$dom->createTextNode($val); $$key->appendchild($text); if(isset($attribute[$key])){ //如果此字段存在相关属性需要设置 foreach($attribute[$key]as$akey=>$row){ //创建属性节点 $$akey=$dom->createAttribute($akey); $$key->appendchild($$akey); //创建属性值节点 $aval=$dom->createTextNode($row); $$akey->appendChild($aval); } }//endif } }//endif }//endfunction ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |