PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门
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
} */
- echo $node->nodeName.":".$node->nodeValue."<br/>";
- }
- ?>
输入如下:
title:tianlongbabu
title:xiaoaojianghu
想更深入得了解XPath的使用,请参考XPath文档:http://download.csdn.net/detail/jsh13417/6042671
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/>*********************************";
- ?>
输出如下:
- 属性:qinghuachubanshe
- 第0本书的 书名||作者
- tianlongbabu||xiaoming
- 属性:beidachubanshe
- 第1本书的 书名||作者
- xiaoaojianghu||daming
- ***simplexml 和xpath结合使用***
- 取出所有的书名:
- 0||tianlongbabu
- 1||xiaoaojianghu
- *********************************
第三种转载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);
- ?>
以上便是对 2个Xml技术的简单入门介绍,想更深入的了解就需要看文档了。
PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门的更多相关文章
- PHP 自学之路-----XML编程(Dom技术)
上一节,讲了Xml文件基本语法及元素,实体及Dtd约束技术,下面就正式进入PHP的Xml编程 使用PHP技术对Xml文件进行操作 常用的有以下三种技术: 1.PHP dom 2.PHP结合XPath操 ...
- 容器技术之Docker基础入门
前文我们了解了下LXC的基础用法以及图形管理工具LXC WEB Panel的简单使用,有兴趣的朋友可以参考https://www.cnblogs.com/qiuhom-1874/p/12904188. ...
- 【二十八】xml编程(dom\xpath\simplexml)
1.xml基础概念 作用范围: 作为程序通讯的标准. 作为配置文件. 作为小型数据库. xml语法: <根标签> <标签 元素="元素值" ...>< ...
- 【转】JAVA自学之路
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- 【转】Java自学之路——by马士兵
作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...
- Java自学之路(新手一定要看)
Java自学之路(新手一定要看) 转自尚学堂 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游 ...
- [感悟]马士兵Java自学之路——(精华版)
JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...
- 马士兵_JAVA自学之路(为那些目标模糊的码农们)
转载自:http://blog.csdn.net/anlidengshiwei/article/details/42264301 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. ...
- C++的XML编程经验――LIBXML2库使用指南[转]
C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...
随机推荐
- 搭建Myeclipse下Java Web开发环境
1.准备 先下载软件:Myeclipse:http://www.xiazaiba.com/html/23858.html tomcat:http://files.cnblogs.com/files/l ...
- ASPxGridView后台获取edit、delete、选择框等按钮。
GridViewCommandColumn commandColumn = (GridViewCommandColumn)ASPxGridViewInstance.Columns["#&qu ...
- django-rest-framework 快速开始
搭建项目 # Set up a new project django-admin.py startproject tutorial cd tutorial # Create a virtualenv ...
- iOS NSMutableURLRequest 上传图片
- (void)postImage:(UIImage *)_image { //分界线的标识符 NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x&q ...
- Unity3d 通过协程来实现文件的全部加载后执行
相信大家会经常遇到在游戏中需要WWW从本地或者服务器上获取数据,而我们通常容易会犯下面这种个错误:当数据较少或者网速较好时程序运行正常.而当数据较大或者网速不好时程序会出错误.比如卡住. 所以我们要使 ...
- nginx+uwsgi部署python web(web.py)
1.nginx: nginx 是一个 http 服务器,与 apache.lighttpd.Microsoft IIS 等属于同类产品. 2.uWSGI: uWSGI 是一个快速的.纯C语言开发的.自 ...
- iphone手机上的click和touch
在iphone手机上绑定click事件时,当你触发点击事件时,你绑定的click事件的DOM节点,会自动被一块浮层选中.所以如果使用事件委托来做事件绑定会造成很差的用户体验. 使用touchstart ...
- php基础知识(每天分享一些以前的笔记希望能帮助自学的朋友)
php基础(第一天) php标签 1. 要知道php是一种嵌入html文档的脚本语言:php语法格式是:<?php 想要写的内容 ?>红色体就是php的标签,注意这些标签都要在英式输入法 ...
- php不同版本特性记录
最近在用php开发时项目中遇到了版本问题,特此记录下php不同版本的一些特性记录,以备忘. 一:php5.3中的新特性 1)开始支持命名空间(Namespace) 2)支持延迟静态绑定(Late St ...
- python自学笔记(三)python基本数据类型之列表list
列表list特性概括 1.有序集合 2.通过偏移来索引,从而读取数据 3.支持嵌套 4.可变的类型(dict 字典也是可变的) (1)切片 a = [1,2,3,4,5,6,7] 正向索引 a[0:4 ...