一 、XML 讀php
1.一、 首先同目錄定義好一個XML文件 :node
book.xmlapi
<?xml version="1.0" encoding="utf-8"?> <books> <book> <id>1</id> <name>書本001</name> </book> <book> <id>2</id> <name>書本002</name> </book> <book> <id>3</id> <name>書本003</name> </book> <title>這是標題</title> </books>
1.2 經過 getElementsByTagName 讀取XMLapp
$xml=new DOMDocument(); $xml->load("book.xml"); // 經過 getElementsByTagName 讀取 foreach($xml->getElementsByTagName('book') as $book) { $id=$book->getElementsByTagName("id"); $name=$book->getElementsByTagName("name"); echo "id:".$id->item(0)->nodeValue.",name:".$name->item(0)->nodeValue."<br/>"; }
1.3 經過 simplexml_import_dom 直接讀取屬性dom
// 經過simplexml_import_dom 直接讀取屬性 $simplexml = simplexml_import_dom($xml); echo "sid->title:".$simplexml->title;
echo "the id is :".$simplexml->book[0]->id;
echo "the id is :".$simplexml->title;
二 、XML 建立ui
2.一、經過 字符串 建立XML document 元素this
$xmlString=<<<XML <?xml version="1.0" encoding="utf-8"?> <books> <book> <id>1</id> <name>書本001</name> </book> <book> <id>2</id> <name>書本002</name> </book> <book> <id>3</id> <name>書本003</name> </book> <title>這是標題</title> </books> XML; $dom=new DomDocument; $dom->loadXML($xmlString);
2.2 經過 DOMDocument api 建立XML 對象 ( 子節點,節點屬性 ,CDATA屬性值標記)spa
class buildXml { /* * 建立一個XML元素 * */ private function createXml() { $dom = new DOMDocument("1.0"); $books = $dom->createElement("books"); for ($i = 0; $i < 4; $i++) { $book = $dom->createElement("book"); // 爲book 節點添加一個屬性 $price = $dom->createAttribute("price"); $priceValue = $dom->createTextNode($i * 10); $price->appendChild($priceValue); $book->appendChild($price); // 添加一個id 接點元素 並賦值 $id = $dom->createElement("id"); $idValue = $dom->createTextNode($i); $id->appendChild($idValue); $book->appendChild($id); // 添加一個待 CDATA標識的內容 $title = $dom->createElement("title"); $titleValue = $dom->createCDATASection("這是一個帶CDATA標籤的內容"); $title->appendChild($titleValue); $book->appendChild($title); $books->appendChild($book); } $dom->appendChild($books); return $dom->saveXML(); } // 輸出XML public function printXML() { header("Content-Type: text/xml"); echo $this->createXml(); } // 保存XML public function saveXML() { $result = false; try { //打開要寫入 XML數據的文件 $fp = fopen("newxml.xml", "w"); //寫入 XML數據 fwrite($fp, $this->createXml()); //關閉文件 fclose($fp); $result = true; } catch (Exception $e) { print $e->getMessage(); exit(); } return $result; } }
2.3 http 輸出 XMLcode
require_once "buildXml.php";
$xml = new buildXml; echo $xml->printXML();
2.4 已文件形式保存 XMLxml
require_once "buildXml.php"; $xml = new buildXml; $xml->saveXML();