PHP下可以使用DOMDocument类对XML或者HTML文件进行读写操作
更为简单的方法使用simpleXML类操作XML
DOM节点分为
- 元素节点
- 属性节点
- 值节点
- 注释节点
- 根节点(document才是根节点)
生成XML文件
<?xml version="1.0" encoding="utf-8"?> <books> <book type="科幻小说"> <name>三体0</name> <auth>刘慈欣</auth> </book> <book type="科幻小说"> <name>三体1</name> <auth>刘慈欣</auth> </book> </books>
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><books/>'); //创建根节点 for($i = 0 ; $i < 10 ; $i ++){ $book = $xml -> addChild('book'); //添加子节点 $book -> addAttribute('type','科幻小说'); //为子节点添加属性 $book -> addChild('name','三体'.$i); //创建值节点 $book -> addChild('auth','刘慈欣'); } $xml -> asXML('book.xml'); //保存
读取XML文件
$content = file_get_contents('book.xml'); $xml = new SimpleXMLElement($content); // $xml中将xml文件转换成的数组,可以直接通过$xml->book访问其下节点 foreach ($xml -> book as $book) { $attr = $book -> attributes(); //返回的是一个数字 echo $book -> name ; echo $book -> auth ; echo "</br>"; }
修改
$content = file_get_contents('book.xml'); $xml = new SimpleXMLElement($content); // $xml中将xml文件转换成的数组,可以直接通过$xml->book访问其下节点 foreach ($xml -> book as $book) { $attr = $book -> attributes(); //返回的是一个数字 $book -> name = "变形金刚"; } $xml -> saveXML('book.xml');
删除
$content = file_get_contents('book.xml'); $xml = new SimpleXMLElement($content); // $xml中将xml文件转换成的数组,可以直接通过$xml->book访问其下节点 for($i = count($xml -> book) - 1 ;$i >= 0 ; $i --){ unset($xml -> book[$i]); } $xml -> saveXML('book.xml');