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