XPath详解,总结(4)
作者:ktgu 来源:乱码 发布时间:2009-04-17 14:09:00
函数及说明:
值得欣喜的是XPath函数和XSLT,XQuery等共享函数库,函数库为我们提供了功能丰富的各种函数的调用,我们也可以自定义自己的函数。这里不再对每个函数的用法逐一说明,英文好点的朋友直接去看看w3关于XPath函数的介绍吧:http://www.w3.org/TR/xquery-operators 。中文的可以参考这个网站, http://www.w3school.com.cn/xpath/xpath_functions.asp
XPath在DOM,XSLT及XQuery中的应用
DOM:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XPath Test</title>
</head>
<body>
<script language="javascript" type="text/javascript">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("messages.xml");
xmlDoc.setProperty("SelectionLanguage", "XPath");
var sPath = "/messages/message[1]//books/*[local-name()='book']";
var bookNodes = xmlDoc.selectNodes(sPath);
document.write("<ul>");
for ( var i = 0; i < bookNodes.length; i++) {
document.write("<li>" + bookNodes[i].childNodes[0].text + "</li>");
}
document.write("</ul>");
</script>
</body>
</html>
注意:
我们若使用new ActiveXObject("Microsoft.XMLDOM")则需要注意的是:因为早期的XMLDOM的SelectionLanguage属性默认是正则表达式,不是XPath语言。所以需要指定这样一条语句xmlDoc.setProperty("SelectionLanguage", "XPath"); 以支持XPath查询表达式。.
若没有指定SelectionLanguage属性值为XPath则要注意以下情况:
数组下标从0开始(我们知道在XPath查询表达式中数组下标是从1开始的)
不支持在XPath查询表达式中使用XPath函数。
XSLT:
见:我的另外一篇关于如何使用XSLT的一个小示范http://www.cnblogs.com/ktgu/archive/2008/12/14/1354890.html
XQuery:
XQuery查询表达式:
xquery version "1.0";
<ul>
{
let $i := 0
for $x in doc("C:\Users\Administrator\Desktop\messages.xml")//message[@id=0]//books/*[local-name()='book']
where $x/year>2006
order by $x/year descending
return <li>{ data($x/name) } </li>
}
</ul>
返回结果:
<ul>
<li>Microsoft Visual C# 2008 Step by Step </li>
<li>Professional C# 2008 </li>
</ul>
这里只是非常简单的介绍一下应用,XPath的其他应用场合和应用技巧大家自己总结吧,若有好的体验,觉得很爽的话,别忘了告诉哥们一下啊,大家共同提高。


猜你喜欢
- /*存储过程*/ sp_databases --列出服务器上的所有数据库 sp_server_info --列出服务器信息,如字符集,版本和
- 一、基础表单 <form > <div class="form-group"> <labe
- 开发中经常会遇得到需要多种条件组合查询的情况,比如有三个表,年级表Grade(GradeId,GradeName),班级Class(Clas
- python 如何获取文件夹中的全部文件在神经网络准备训练集的时候,经常需要从文件夹中读取全部图片。经常遇到的有两种方式1 os.listd
- MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。语法以下为删除MySQL数
- --重命名表 rename table t_softwareport to software_port; --建立外键 alter tabl
- vue中异步数据获取1、获取异步数据,通过async/await限制 import { fetchList } from '
- 本文先了解一个简单阈值函数,以了解一个阈值算法的具体参数。 然后比较不同阈值函数的区别。同样的,先用一副图说明本文重要大纲: #! usr/
- Python中执行系统命令常见的方法有以下4种注意:以下实例代码在Python3.5下运行通过。一、os.system方法os.system
- 方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib方法2: 多文件模块,文件内有setup.py文件在官网或者GitHub
- 背景MySQL在命令行输入密码时会提示mysql: [Warning] Using a password on the command li
- 常用的网站性能测试指标有:并发数、响应时间、吞吐量、性能计数器等。1、并发数并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力
- 前言其实Python使用QQ邮箱发送Email代码很简单,短短几行代码就可以实现这个功能。使用到的模块有smtplib和email这个两个模
- 本文实例讲述了python求解水仙花数的方法。分享给大家供大家参考。具体如下:一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于
- 主要是运用java.util.regex类。 import java.util.regex.Matcher;import java
- 下面是滚动条css代码参数介绍:scrollbar-3d-light-color 设置或检索滚动条亮边框颜色 scrollbar-highl
- 随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。这次有幸修改淘宝网全站页头,小小地应用了下(详见http://www.taobao.
- 计算交并比:交的面积除以并的面积。要求矩形框的长和宽应该平行于图片框。不然不能用这样的公式计算。原理,从一维上来理解:两条红线的距离之和减去
- 使用函数 ugettext() 来指定一个翻译字符串。 作为惯例,使用短别名 _ 来引入这个函数以节省键入时间.在下面这个例子中,文本 &q
- 本文实例为大家分享了Python3 Tkinkter + SQLite 实现登录和注册界面,供大家参考,具体内容如下Ubuntu14 + P