zoukankan
html css js c++ java
xpath的一些测试
<!DOCTYPE html> <html> <head> <title>xpath test by 司徒正美</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="/dom/dom.js"></script> <script> window.onload = function(){ var xmlstr = '<?xml version="1.0" encoding="ISO-8859-1"?>'+ document.getElementsByTagName("xml")[0].innerHTML //.html(); function parseXML( data,xml,tmp ) { try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); xml.setProperty("SelectionNamespaces", "xmlns:xsl='http://www.w3.org/1999/XSL/Transform'"); xml.setProperty("SelectionLanguage", "XPath"); } } catch( e ) { xml = undefined; } if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { throw ( "Invalid XML: " + data ); } return xml; } var xml = parseXML(xmlstr); function getElementsByXPath(xpath,context,doc) { var result = []; if( doc.evaluate){ var nodes = doc.evaluate(xpath, context, null, 7, null); for (var i = 0, n = nodes.snapshotLength; i < n; i++){ result[i] = nodes.snapshotItem(i) } }else{ nodes = context.selectNodes(xpath); for (i = 0, n = nodes.length; i < n; i++){ result[i] = nodes[i] } } return result; }; var $X = function(expr){ var nodes = getElementsByXPath(expr,xml,xml); console.log(nodes) return nodes } showIDs = function(expr){ var nodes = getElementsByXPath(expr,xml,xml); for(var i=0,el;el = nodes[i++];){ console.log(el.getAttribute("id")) } } $X("//book"); $X("//book/title") $X("//book//title") $X("//book/child::title") $X('//book//title[@class="classname2"]') $X("/descendant-or-self::node()[@class='classname2']") $X("/descendant-or-self::node()[@class='classname']") $X("//node()[@class='classname']") $X("//*[@class='classname2']") console.log("==================") $X("id('aa0')") showIDs("//node()[@class='classname']") } </script> </head> <body> <xml> <bookstore> <title class="classname0" id="aa0">ddd</title> <title class="classname" id="aa1">ddd</title> <book> <title lang="en" class="classname" id="aa2">foo</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book> <title lang="en" class="classname" id="aa3">bar</title> <author>J K. Rowling<title class="classname2">ddd</title></author> <year>2005</year> <price>29.99</price> </book> </bookstore> </xml> </body> </html>
运行代码
机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
查看全文
相关阅读:
一个JS的问题,请帮下忙!
开始练习VS2003了
SQL查询结果的合并问题
几个微软的好东西!
对谷歌输入发的一点疑虑
Visual studio 2005 sdk 安装引起的后果
Socket协议测试:TPS偏低,和响应时间计算出来的TPS不相符的问题
数据库索引失效
挡板模拟器桩模块驱动模块
nmon 监控结果
原文地址:https://www.cnblogs.com/rubylouvre/p/2238174.html
最新文章
SPCOMM避免丢失字符
(5) zigbee学习笔记IAR编译器输出hex文件
(9) zigbee学习笔记协议栈NV操作
(4) zigbee学习笔记地址类型及网路地址分配
(8) zigbee学习笔记无线传感器网络节点能耗分析(基于zigbee) (转载)
(7) zigbee学习笔记Zigbee地址分配 (转载)
(6) zigbee学习笔记协议栈开启省电模式
(10) zigbee学习笔记基于CC2430使终端设备依据特定的PAN ID入网(转)
pthread_kill 和 sigaction 函数(摘抄)
解决Android平板电脑上开发应用程序不能全屏显示的问题
热门文章
MFC的自绘制
Samba服务设置
为ARM处理器交叉编译php5.3.6版本
(转帖)总结C++中三种关于"new"的使用方法
打开linux的framebuffer
电脑总是出现0x0700609c指令引用的0x00000014内存。该内存不能为read。
用automake建立共享库(动态链接库)Makefile
C++Builder 2007
求助:DataGrid加行号的问题
VC++.NET编译的问题
Copyright © 2011-2022 走看看