XPAth技术

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

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

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <books>
  3. <book house="qinghuachubanshe">
  4. <code>sb001</code>
  5. <price>200</price>
  6. <author>xiaoming</author>
  7. <title>tianlongbabu</title>
  8. </book>
  9. <book house="beidachubanshe">
  10. <code>sb002</code>
  11. <price>400</price>
  12. <author>daming</author>
  13. <title>xiaoaojianghu</title>
  14. </book>
  15. </books>

PHP 代码如下:

  1. <?php
  2. //1 创建DOMDocument对象
  3. $dom = new DOMDocument("1.0", "UTF-8");
  4.  
  5. //2 加载Xml文件
  6. $dom->load("simplexml.xml");
  7.  
  8. //3 转成DomXPath对象
  9. $xpath = new DOMXPath($dom);
  10.  
  11. //4 查找工作
  12.  
  13. $node_list = $xpath->query("/books/book/title");
  14. echo "一共有".$node_list->length."个<br/>";
  15. for($i=0; $i<$node_list->length;$i++){
  16.  
  17. $node = $node_list->item($i);
  18. // var_dump($node_list);
  19. /*foreach ($node as $key=>$val){
  20. echo
} */
  1. echo $node->nodeName.":".$node->nodeValue."<br/>";
  2. }
  3. ?>

输入如下:

一共有2个
title:tianlongbabu

title:xiaoaojianghu


想更深入得了解XPath的使用,请参考XPath文档:http://download.csdn.net/detail/jsh13417/6042671

simpleXml

simpleXMl的核心思想:以面向对象的方法来操作Xml文件。simpleXml是比较简单的方式,通常会和XPath配合使用,


  1. <?php
  2.  
  3. //装载方式1 ‘装载一个Xml文件
  4. // $lib = simplexml_load_file("simplexml.xml");
  5. //2 DOM 对象装载方式
  6. //1 创建DOMDocument对象
  7. $dom = new DOMDocument("1.0", "UTF-8");
  8.  
  9. //2 加载Xml文件
  10. $dom->load("simplexml.xml");
  11.  
  12. $lib = simplexml_import_dom($dom);
  13.  
  14. echo "<pre>";
  15. // var_dump($lib);/*1*/
  16. echo "</pre>";
  17.  
  18. //取出书,
  19. $books = $lib->book;
  20. /* //取出第一本书
  21. $book1=$books[0];
  22. //取出书名
  23. echo $book1->title.":".$book1->author; */
  24. for($i=0;$i<count($books);$i++){
  25. $book1=$books[$i];
  26. //取出属性
  27. echo "属性:".$book1['house']."<br/>";
  28. echo "第".$i."本书的 书名||作者<br/>";
  29. echo $book1->title."||".$book1->author."<br/>";
  30. }
  31.  
  32. echo "***simplexml 和xpath结合使用***<br/>";
  33. echo "取出所有的书名:<br/>";
  34. $titles = $lib->xpath("//title");
  35. foreach ($titles as $key=>$val){
  36. echo "<br/>".$key."||".$val;
  37. }
  38. echo "<br/>*********************************";
  39. ?>

输出如下:

  1. 属性:qinghuachubanshe
  2. 0本书的 书名||作者
  3. tianlongbabu||xiaoming
  4. 属性:beidachubanshe
  5. 1本书的 书名||作者
  6. xiaoaojianghu||daming
  7. ***simplexml xpath结合使用***
  8. 取出所有的书名:
  9.  
  10. 0||tianlongbabu
  11. 1||xiaoaojianghu
  12. *********************************

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

  1. <?php
  2. echo "<br/>simplexml也可以直接装载一个string字符串(Xml规范)";
  3.  
  4. $string = <<<XML
  5. <?xml version='1.0'?>
  6. <document>
  7. <title>Forty What?</title>
  8. <from>Joe</from>
  9. <to>Jane</to>
  10. <body>
  11. I know that's the answer -- but what's the question?
  12. </body>
  13. </document>
  14. XML;
  15.  
  16. $xml = simplexml_load_string($string);
  17.  
  18. print_r($xml);
  19.  
  20. ?>

以上便是对 2个Xml技术的简单入门介绍,想更深入的了解就需要看文档了。

参考资料:

PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门的更多相关文章

  1. PHP 自学之路-----XML编程(Dom技术)

    上一节,讲了Xml文件基本语法及元素,实体及Dtd约束技术,下面就正式进入PHP的Xml编程 使用PHP技术对Xml文件进行操作 常用的有以下三种技术: 1.PHP dom 2.PHP结合XPath操 ...

  2. 容器技术之Docker基础入门

    前文我们了解了下LXC的基础用法以及图形管理工具LXC WEB Panel的简单使用,有兴趣的朋友可以参考https://www.cnblogs.com/qiuhom-1874/p/12904188. ...

  3. 【二十八】xml编程(dom\xpath\simplexml)

    1.xml基础概念 作用范围: 作为程序通讯的标准. 作为配置文件. 作为小型数据库. xml语法: <根标签> <标签 元素="元素值" ...>< ...

  4. 【转】JAVA自学之路

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  5. 【转】Java自学之路——by马士兵

    作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...

  6. Java自学之路(新手一定要看)

    Java自学之路(新手一定要看) 转自尚学堂 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游 ...

  7. [感悟]马士兵Java自学之路——(精华版)

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  8. 马士兵_JAVA自学之路(为那些目标模糊的码农们)

    转载自:http://blog.csdn.net/anlidengshiwei/article/details/42264301 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. ...

  9. C++的XML编程经验――LIBXML2库使用指南[转]

    C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...

随机推荐

  1. 搭建Myeclipse下Java Web开发环境

    1.准备 先下载软件:Myeclipse:http://www.xiazaiba.com/html/23858.html tomcat:http://files.cnblogs.com/files/l ...

  2. ASPxGridView后台获取edit、delete、选择框等按钮。

    GridViewCommandColumn commandColumn = (GridViewCommandColumn)ASPxGridViewInstance.Columns["#&qu ...

  3. django-rest-framework 快速开始

    搭建项目 # Set up a new project django-admin.py startproject tutorial cd tutorial # Create a virtualenv ...

  4. iOS NSMutableURLRequest 上传图片

    - (void)postImage:(UIImage *)_image { //分界线的标识符 NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x&q ...

  5. Unity3d 通过协程来实现文件的全部加载后执行

    相信大家会经常遇到在游戏中需要WWW从本地或者服务器上获取数据,而我们通常容易会犯下面这种个错误:当数据较少或者网速较好时程序运行正常.而当数据较大或者网速不好时程序会出错误.比如卡住. 所以我们要使 ...

  6. nginx+uwsgi部署python web(web.py)

    1.nginx: nginx 是一个 http 服务器,与 apache.lighttpd.Microsoft IIS 等属于同类产品. 2.uWSGI: uWSGI 是一个快速的.纯C语言开发的.自 ...

  7. iphone手机上的click和touch

    在iphone手机上绑定click事件时,当你触发点击事件时,你绑定的click事件的DOM节点,会自动被一块浮层选中.所以如果使用事件委托来做事件绑定会造成很差的用户体验. 使用touchstart ...

  8. php基础知识(每天分享一些以前的笔记希望能帮助自学的朋友)

    php基础(第一天) php标签 1.  要知道php是一种嵌入html文档的脚本语言:php语法格式是:<?php 想要写的内容 ?>红色体就是php的标签,注意这些标签都要在英式输入法 ...

  9. php不同版本特性记录

    最近在用php开发时项目中遇到了版本问题,特此记录下php不同版本的一些特性记录,以备忘. 一:php5.3中的新特性 1)开始支持命名空间(Namespace) 2)支持延迟静态绑定(Late St ...

  10. python自学笔记(三)python基本数据类型之列表list

    列表list特性概括 1.有序集合 2.通过偏移来索引,从而读取数据 3.支持嵌套 4.可变的类型(dict 字典也是可变的) (1)切片 a = [1,2,3,4,5,6,7] 正向索引 a[0:4 ...