xpath、dtd解析xml

本文介绍了PHP中全局变量的声明方法及XPath的基本使用技巧,包括如何通过XPath定位XML元素和属性,以及PHP中文件读写操作。

1,在php中全局变量是通过global或者$GLOBALS[]来声明的,和js完全不一样,建议使用$GLOBALS[]声明全局变量。

$GLOBAL[]超级全局数组变量,所以他的下标(索引)就是变量名字

在函数内部使用全局范围的变量时,一定要先声明为全局变量。

2File_get_contents(保存文件的地址和文件名,保存的数据,方式(追加或覆盖))

3,php中单引号 原封不动的输出里面的值

双引号 会解析引号里面的值

4Var_dump();  输出类型信息 

Echo 输出字符串

5DOM :内存中节点树,通过节点之间的关系来定位的

SAX:按照开始标签,按顺序一个一个查找,只适合读取数据

SimpleXML:将元素转化成对象,相同的元素转化成对象的集合,节点之间没有关系

,6XPathxml的路径,用来定位(找到)xml元素(节点)的一种语言

谁去找?  对象

怎么找?  规则(我们定义一种规则,按照规则找)

DOMDocument定位xml就不难理解,因为节点之间有关系。

XPath的定位的功能是通过DOMXPath对象来实现的

实例化这个对象的参数是DOMDocument,因为我们要去这个文档内定位元素

7,使用XPath的步骤:

    先有DOMDocument对象

    加载xml文件

    实例化DOMXPath对象

    查询:先定义查找规则,再根据规则查找元素,

8XPath的相应规则

①利用元素名查找   //元素名

②按照位置查找    /经过的元素1/经过的元素2/查找的元素

③按照集合中的索引查找

④利用子元素查找   /元素名[]

⑤利用元素属性查找   /@属性名=属性值

⑥获得属性    @属性名

<?php

$doc=new DOMDocument();

$doc->load('config.xml');

$xpath=new DOMXPath($doc);

 

.通过元素名查找

$rule="//user";

.通过元素间的关系(位置)查找

$rule="/config/db/host";

③通过集合中的索引,索引是从1开始

$rule="/config/db[2]";

.通过子元素查找

$rule="/config/db[dbname='ecshop']";

.通过元素的属性查找

$rule="/config/db[@name='db2']";

⑥获得元素的属性

$rule="/config/db/@name";

 

$user=$xpath->query($rule);

$one=$user->item(0)->nodeValue;

var_dump($one);

 

?>

9DTD验证

格式良好的:符合xml语法规则的就是格式良好的

合法的:经过验证并且验证通过的

DTD Document Type Definition 文档类型定义

用法:

    先将DTD验证规则和xml文件关联起来

<!DOCTYPE 根元素 SYSTEM dtd文件”>

    php文件加载xml文件时验证

validateOnParse

(1)   定义元素

<!ELEMENT 元素名元素特征>

()表示子元素列表后面规定子元素的数量 * +

如果没有子元素,需要声明这个元素保存的是一个值(#PCDATA

2)定义属性

<!ATTLIST 元素名属性名 属性类型 属性特征值>

CDATA          属性是一个普通值

ID   属性是唯一的标识

#REQUIRED 代表当前的属性是必须的

#IMPLIED  代表当前的属性是可选的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值