Php 操作xml
一、使用simpleXml 操作xml
(1) 创建xml
$xml = <<<xml
<?xml encoding=’utf-8’ version=’1.0’?>
Xml;
$s_xml = new SimpleXMLElement($xml);
(2) 生成xml $s_xml->asXML(‘test.xml’);
(3) 载入xml $sxml = simplexml_load_file(‘test.xml’);
(4) 解析xml $sxml->asXML();
(5) 读出xml $sxml->节点名称,如果有多个相同节点就在节点后加下标:节点名[下标数],注意下标是从0开始的;如果一个节点里包含有多层节点,就用->节点名访问就可以了。默认是第一个。
(6) 获取节点标签属性
$sxml->节点名[节点下标]->节点名->attributes()[下标数];默认是第一个
(7) 使用Xpath获取节点
$version = $sxml->xpath(‘/根节点/字节点’);
接下来的访问方法同上面。
二、使用DOMdocument操作xml
1、读取外部的xml进行操作
(1) 创建一个dom对象
$dom = new DOMDocument();
(2) 加载xml
$dom->load(‘test.xml’);
(3) 读取节点
$version = $dom->getElementsByTagName(‘version’);
(4) 获取相应节点的值
Echo $version->item(下标数)->nodeValue;
2、内部创建xml进行操作
//声明xml
$_doc = new DOMDocument('1.0','utf-8');
//排版格式
$_doc->formatOutput = true;
//创建一个主标签
$_root = $_doc->createElement('root');
//创建一个子标签
$_version = $_doc->createElement('version');
//给子标签赋值
$_versionTextNode = $_doc->createTextNode('1.0');
//将值放到子标签里
$_version->appendChild($_versionTextNode);
//将子标签放到父标签里
$_root->appendChild($_version);
//将父元素放到xml里
$_doc->appendChild($_root);
//生成xml文件
$_doc->save('domcxml.xml');