\t\tXPath在DOM,XSLT及XQuery中的应用

XPath在DOM,XSLT及XQuery中的应用

DOM:

		XPath在DOM,XSLT及XQuery中的应用 - yandavid - 我的博客 		XPath在DOM,XSLT及XQuery中的应用 - yandavid - 我的博客 点击展开
<!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函数。
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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值