xml 笔记
xml 语法规范 <!-- xml注释--> 1 声明xml 文件 <?xml version="1.0" encoding="utf-8"?> 2节点部分 <节点名> </节点名> 标签的写法 <a></a> 标签必须成对出现,闭合 <br/> 也可以单标签自闭和 标签属性全小写 3 XML 文档只能有一个顶层元素。处理资源 <root></root> <root><a></a></root> 正确 <root></root><a></a> 错误 4属性 属性必有值,小写 属性值必用 双引号引起来 5特殊字符要用实体来代替 6 CDATA节 原样输出大段文本 <![CDATA[此处为文本]]> 7在xml中一切皆节点 包括换行符和 空白 //DOMDocument 类 // 创建类 $dom = new DOMDocument('1.0','utf-8'); // 1 创建文本节点 $t = $dom->createTextNode('天龙八部'); // 2 创建普通节点 $name = $dom->creatEelement('tit'); // 3 把文件节点 加到普通节点中 //添加没有返回值 $name->appendChild($t); //元素的方法 //4 创建cdata节 $data = $dom->createCDATASection('在这所有的文字都会原样输出'); $tro = $dom->createElement('tro'); $tro->appendchild($data); //请求头 告诉浏览器这是xml文件 header("content-type:text/xml"); //直接输出在浏览器上 echo $dom->savexml(); //保存在某个文件里 $dom->save('文件名')?ok:fail; //查找某个文本节点 echo $dom->getElementsByTagName('tit')->item(0)->childNodes->item(0)->wholeText; //节点列表 //节点元素 //节点列表 //文本节点 // echo 天龙八部 echo $dom->getElementsByTagName('tit')->item(0)->nodeValue; //只能是自己的子节点才能删除 $mv = $dom->getElementsByTagName('book')->item(0); $w = $dom->getElementsByTagName('root')->removeChild($mv); xml ->数组 有利于交换 php function xml2arr($sim){ $arr = (array)$sim; foreach($arr as $k=>$v){ if($v instanceof simplexmlelement || is_array($v)){ $arr[$k] = xml2arr($v); } } return $arr; } $s = simplexml_load_file('./dict.xml'); //print_r($s); echo '<hr />'; $data = xml2arr($s) file_put_contents('liuji.php',$data);
数组->xml 有利于传输 //数组转xml $arr = array( 'name' => '虚竹','sex' => '男','wugong'=>array( 'xiao'=>'道家','luo' =>'佛家','fen' =>array( '1'=>'www' ) ) ); //把数组转成xml function arr2xml($arr,$key=null){ if($key===null){ $xml = new simpleXMLElement('<?xml version="1.0" encoding="utf-8"?><root></root>'); }else{ $xml = $key; } foreach ($arr as $k=>$v){ if(is_array($v)){ arr2xml($v,$xml->addchild($k)) ; }else if(is_numeric($k)){ $xml->addchild('a'.$k,$v); //如果$k是数字,加上'a' }else{ $xml->addchild($k,$v); } } return $xml->savexml(); } //header('content-type:text/xml'); print_r(arr2xml($arr)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |