PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门_PHP教程

原创
2016-07-15 13:21:51 977浏览

   XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点。主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]。

     Xapth主要用来在XML文档中查询信息的工具,通过使用路径表达式可以解析XML文件,读取XML文件中的数据
下面以案例来介绍,XML 文件如下(simplexml.xml):
[php]  
 
 
     
        sb001  
        200  
        xiaoming  
        tianlongbabu  
     
     
        sb002  
        400  
        daming  
        xiaoaojianghu  
     
 
 
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."个
";  
    for($i=0; $ilength;$i++){  
          
         $node = $node_list->item($i);  
        // var_dump($node_list);  
        /*foreach ($node as $key=>$val){ 
            echo  
      } */
     echo $node->nodeName.":".$node->nodeValue."
";  
    }  
?>  
输入如下:
一共有2个
title:tianlongbabu
title:xiaoaojianghu
 
想更深入得了解XPath的使用, 
simpleXml
      simpleXMl的核心思想:以面向对象的方法来操作Xml文件。simpleXml是比较简单的方式,通常会和XPath配合使用,
 
[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 "
";  
   // var_dump($lib);/*1*/  
    echo "";  
      
    //取出书,  
    $books = $lib->book;  
    /* //取出第一本书 
    $book1=$books[0]; 
    //取出书名 
    echo $book1->title.":".$book1->author; */  
    for($i=0;$i
        $book1=$books[$i];  
        //取出属性  
        echo "属性:".$book1['house']."
";  
        echo "第".$i."本书的 书名||作者
";  
        echo $book1->title."||".$book1->author."
";   
    }  
      
  
    echo "***simplexml 和xpath结合使用***
";  
    echo "取出所有的书名:
";  
    $titles = $lib->xpath("//title");  
    foreach ($titles as $key=>$val){  
        echo "
".$key."||".$val;  
    }  
    echo "
*********************************";  
?>  
输出如下:
[php]  
属性:qinghuachubanshe  
第0本书的 书名||作者  
tianlongbabu||xiaoming  
属性:beidachubanshe  
第1本书的 书名||作者  
xiaoaojianghu||daming  
***simplexml 和xpath结合使用***  
取出所有的书名:  
  
0||tianlongbabu  
1||xiaoaojianghu  
*********************************  
 
   第三种转载Xml方式,字符串方式,如下:
[php] 
echo "
simplexml也可以直接装载一个string字符串(Xml规范)";  
  
$string =
  
 
 Forty What?  
 Joe  
 Jane  
   
  I know that's the answer -- but what's the question?  
   
 
XML;  
  
$xml = simplexml_load_string($string);  
  
print_r($xml);  
  
?>  
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477134.htmlTechArticleXPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点。主要目的是描述节点相对其他节点的位置,可以取得所有符合条...
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。