PHP自学--XML编程

XPath技术

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

 Xapth主要用来在XML文档中查询信息的工具,通过使用路径表达式可以解析XML文件,读取XML文件中的数据

 下面以案例来介绍,XML 文件如下(simplexml.xml):

<?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  
        //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/>";  
        }  
    ?>  


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 "<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/>*********************************";  
    ?>  

第三种转载Xml方式,字符串方式,如下:

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值