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 ...
随机推荐
- BootStrap 智能表单系列 首页 (持续更新中...)
背景:本码农.NET后端工程师,在项目开发中发现写了很多重复的代码, 于是自己整了一套根据配置来生成form表单的插件,针对表单的改动仅需要修改配置的json即可 使用中发现还是蛮实用的,于是开源出来 ...
- AngularJS Directive 学习笔记
指令 Directive 指令要点 大漠老师的教学节点 解析最简单的指令 hello: 匹配模式 restrict 解析最简单的指令 hello: template.tempmlateUrl.$tem ...
- BZOJ 1050: [HAOI2006]旅行comf( 并查集 )
将edge按权值排序 , O( m² ) 枚举边 , 利用并查集维护连通信息. ------------------------------------------------------------ ...
- POJ_1698_Alice's Chance
#include <iostream> #include <queue> #include <climits> #include <cstring> u ...
- 如何学习Javascript ?
先说说学js的条件 论条件,咱是文科生,大学专业工商管理,和计算机毛关系都没:有人说英语,读了四年大学,很遗憾,咱还四级没混过:就咱这条件都学得乐呵呵的,您还等啥.当然学习JS也是有门槛的,就是你的h ...
- [转]IOS 中文排序
转自:http://www.cnblogs.com/syxchina/archive/2012/10/11/2720257.html 1 原因 Ios默认使用utf-8格式编码,所以中文在IOS中默认 ...
- strlen源码剖析
学习高效编程的有效途径之一就是阅读高手写的源代码,CRT(C/C++ Runtime Library)作为底层的函数库,实现必然高效.恰好手中就有glibc和VC的CRT源代码,于是挑了一个相对简 ...
- Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)
Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...
- Baby Step Gaint Step
给定同余式,求它在内的所有解,其中总是素数. 分析:解本同余式的步骤如下 (1)求模的一个原根 (2)利用Baby Step Giant Step求出一个,使得,因为为素数,所以有唯一解. (3)设, ...
- The Longest Straight(二分,离散化)
Problem 2216 The Longest Straight Accept: 7 Submit: 14 Time Limit: 1000 mSec Memory Limit : 3 ...