<!-- 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));