XPath的設計的核心思想,可以通過xpath迅速簡介的定位到你希望查找的節點。主要目的是描述節點相對其他節點的位置,可以取得所有符合條件的節點,成為[位置路徑]。 Xapth主要用來在XML文檔中查詢信息的工具,通過使用路徑表達式可以解析XML文件,讀取XML文件中的數據 下面以案例來介紹,XML 文件如下(simplexml.xml): [php] <?xml version="1.0" encoding="UTF-8"?> <books> <book house="qinghuachubanshe"> <code>sb001</code> <price>200</price> <author>xiaoming</author> <title>tianlongbabu</title> </book> <book house="beidachubanshe"> <code>sb002</code> <price>400</price> <author>daming</author> <title>xiaoaojianghu</title> </book> </books> PHP 代碼如下: [php] <?php //1 創建DOMDocument對象 $dom = new DOMDocument("1.0", "UTF-8"); //2 加載Xml文件 $dom->load("simplexml.xml"); //3 轉成DomXPath對象 $xpath = new DOMXPath($dom); //4 查找工作 $node_list = $xpath->query("/books/book/title"); echo "一共有".$node_list->length."個<br/>"; for($i=0; $i<$node_list->length;$i++){ $node = $node_list->item($i); // var_dump($node_list); /*foreach ($node as $key=>$val){ echo <h6><a name="t6"></a> <span style="font-weight: normal;">} */</span></h6> echo $node->nodeName.":".$node->nodeValue."<br/>"; } ?> 輸入如下: 一共有2個 title:tianlongbabu title:xiaoaojianghu 想更深入得了解XPath的使用, simpleXml simpleXMl的核心思想:以面向對象的方法來操作Xml文件。simpleXml是比較簡單的方式,通常會和XPath配合使用, [php] <?php //裝載方式1 ‘裝載一個Xml文件 // $lib = simplexml_load_file("simplexml.xml"); //2 DOM 對象裝載方式 //1 創建DOMDocument對象 $dom = new DOMDocument("1.0", "UTF-8"); //2 加載Xml文件 $dom->load("simplexml.xml"); $lib = simplexml_import_dom($dom); echo "<pre>"; // var_dump($lib);/*1*/ echo "</pre>"; //取出書, $books = $lib->book; /* //取出第一本書 $book1=$books[0]; //取出書名 echo $book1->title.":".$book1->author; */ for($i=0;$i<count($books);$i++){ $book1=$books[$i]; //取出屬性 echo "屬性:".$book1['house']."<br/>"; echo "第".$i."本書的 書名||作者<br/>"; echo $book1->title."||".$book1->author."<br/>"; } echo "***simplexml 和xpath結合使用***<br/>"; echo "取出所有的書名:<br/>"; $titles = $lib->xpath("//title"); foreach ($titles as $key=>$val){ echo "<br/>".$key."||".$val; } echo "<br/>*********************************"; ?> 輸出如下: [php] 屬性:qinghuachubanshe 第0本書的 書名||作者 tianlongbabu||xiaoming 屬性:beidachubanshe 第1本書的 書名||作者 xiaoaojianghu||daming ***simplexml 和xpath結合使用*** 取出所有的書名: 0||tianlongbabu 1||xiaoaojianghu ********************************* 第三種轉載Xml方式,字符串方式,如下: [php] <?php echo "<br/>simplexml也可以直接裝載一個string字符串(Xml規范)"; $string = <<<XML <?xml version='1.0'?> <document> <title>Forty What?</title> <from>Joe</from> <to>Jane</to> <body> I know that's the answer -- but what's the question? </body> </document> XML; $xml = simplexml_load_string($string); print_r($xml); ?>