您当前的位置: 首页 > 学无止境 > XML与XSLT 网站首页XML与XSLT
6.xpath快速定位节点
发布时间:2017-04-30 12:48:09编辑:雪饮阅读()
xml:
<?xml version="1.0" encoding="utf-8"?>
<dict>
<word>
<name>duminjie</name>
<mean>杜敏捷</mean>
<lx>杜敏捷与雪饮</lx>
</word>
<word>
<name>xueyin</name>
<mean>雪饮</mean>
<lx>雪饮与杜敏捷</lx>
</word>
</dict>
php:
<?php
ini_set("display_error","on");
error_reporting(E_ALL | E_STRICT);
$dom=new DOMDocument('1.0','utf-8');
$dom->load('./08.xml');
//利用XPATH方式匹配条件快速查找一个节点
$xp=new DOMXPath($dom);
/*
条件1:/dict/word[name='duminjie']/name
获得name节点,该节点符合所在路径“/dict/word/name”并且该节点的节点值为“duminjie”
条件2:word[name='duminjie']/name
和上面的条件1功能一样,只不过不从根目录查找节点,而是从二级目录查找节点
条件3://dict/word[name='duminjie']/name
和条件1一样,只是查找节点时不管是否路径满足根目录或者二级目录,即不区分路径级别
条件4 :/dict/word[name='duminjie']/ mean
查找路径满足“/dict/word/name”并且name节点值为“duminjie”,另name节点有一兄弟节点“mean”
条件5:word/@addr
从二级目录开始查找word节点的属性addr节点
条件6:word[@addr='xian']/age
从二级目录开始查找age节点,并且满足路径“word/age”,另word的节点必须有addr属性,且属性值为“xian”
*/
$path="/dict/word[name='duminjie']/name";
//匹配条件进行查找,返回一个节点列表
$rst=$xp->query($path);
//取出节点列表中第一个节点的节点名
echo $rst->item(0)->nodeName;
echo "<br/>";
//取出该节点的兄弟节点(next)节点名与节点值(有可能取出的空白节点,所以在真实开发环境要做逻辑处理)
echo "节点名:".$rst->item(0)->nextSibling->nodeName;
echo "节点值:".$rst->item(0)->nextSibling->nodeValue;
echo "<br/>获取一个对象(类)的所有方法:";
echo "<pre>";
print_r(get_class_methods("DOMDocument"));
echo "</pre>";
?>
关键字词:xpath,php,xml
上一篇:5.rss介绍与rss制作
下一篇:7.dtd介绍及简单例子