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