程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 自學之路-----XML編程(Xpath技術,simpleXml技術)基礎入門

PHP 自學之路-----XML編程(Xpath技術,simpleXml技術)基礎入門

編輯:關於PHP編程

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved