xpath简介

来源:脚本之家  责任编辑:小易  

+ "["); for (short index = 0; index < columns.Count(); index++) { //增加and逻辑运算符 if (index > 0) { xpath.Append(" AND"); } xpath.Append(columns[ind

简单说,xpath就是选择XML文件中节点的方法。

xpath 我一般这样用 xpath="//*/a[@id='xxx' and @class='xxx']" 要是在一个节点下有多个相同的div,就用div[1][2][3],要是只有一个就用上面那种形式比较好,或者使用fire

所谓节点(node),就是XML文件的最小构成单位,一共分成7种。

ex) { ex.printStackTrace(); } } 运行能得到 kpi id的最大值是多少 但换个系统,在真正到公司的软机的系统上,就报 org.dom4j.InvalidXPathException: Invalid XPath expressi

- element(元素节点)

XPath 是一门在 XML 文档中查找信息的语言

- attribute(属性节点)

你有弄懂你要做什么嘛。。。 你这句话让人看得一头雾水。。。 根据你的词语,我能重新整理成: 如何以JS为工具用xpath规范来解析Html。 答案是,你还不如用js直接dom操

- text (文本节点)

      没错,不过属性的值应该用引号围起来。另外,你贴上来的 XML 码的第一个 a 元素的结束标记少了个斜杠。 XPath 真方便: import org.dom4j.*;

- namespace (名称空间节点)

By.xpath("//input[4]") 第四种方法:使用xpath属性定位(结合第2、第3中方法可以使用) By.xpath("//input[@id='kw1']") By.xpath("//input[@type

- processing-instruction (处理命令节点)

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。路径表达式是从一个XML节点(当前的上

- comment (注释节点)

<price>9.90</price> </cd> </catalog> 定位节点 XML是树状结构,类似档案系统内数据夹的结构,XPath也类似档案系统的路径命名方式。不过XPath 是

- root (根节点)

甚至有时候为了元素能够正确识别,甚至会延长等待时间,脚本执行的正确性比速度重要些。 然后再说IE Driver,如果用IE执行测试,不建议用xpath selecter定位,因为IE对xpath的支

xpath可以用来选择这7种节点。不过,下面的笔记只涉及最常用的第一种element(元素节点),因此可以将下文中的节点和元素视为同义词。

{ Element ele=xmlDoc.getRootElement(); try{ String xPath1="/root/element/sub[contains(@order,'二')]"; List list1=XPath.selectNodes(ele,xPath1); }catc

一、xpath表达式的基本格式

XPath 注入,攻击者利用Web 应用对用户提交的参数过滤不严的漏洞,提交经过构造的参数,这些参数能够被注入到XPath 查询语句中,获得权限信息的访问权并在此基础上更改这

xpath通过"路径表达式"(Path Expression)来选择节点。在形式上,"路径表达式"与传统的文件系统非常类似。

这时xpath相比RE就有了决定性的优势。附录:基本XPATH语法介绍,详细请参考XPath的官方文档XPATH基本上是用一种类似目录树的方法来描述在XML文档中的路径。比如用

# 斜杠(/)作为路径内部的分割符。

# 同一个节点有绝对路径和相对路径两种写法。

# 绝对路径(absolute path)必须用"/"起首,后面紧跟根节点,比如/step/step/...。

# 相对路径(relative path)则是除了绝对路径以外的其他写法,比如 step/step,也就是不使用"/"起首。

# "."表示当前节点。

# ".."表示当前节点的父节点

二、选择节点的基本规则

- nodename(节点名称):表示选择该节点的所有子节点

- "/":表示选择根节点

- "//":表示选择任意位置的某个节点

- "@": 表示选择某个属性

三、选择节点的实例

先看一个XML实例文档。

<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>

[例1]

bookstore :选取 bookstore 元素的所有子节点。

[例2]

/bookstore :选取根节点bookstore,这是绝对路径写法。

[例3]

bookstore/book :选取所有属于 bookstore 的子元素的 book元素,这是相对路径写法。

[例4]

//book :选择所有 book 子元素,而不管它们在文档中的位置。

[例5]

bookstore//book :选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。

[例6]

//@lang :选取所有名为 lang 的属性。

四、xpath的谓语条件(Predicate)

所谓"谓语条件",就是对路径表达式的附加条件。

所有的条件,都写在方括号"[]"中,表示对节点进行进一步的筛选。

[例7]

/bookstore/book[1] :表示选择bookstore的第一个book子元素。

[例8]

/bookstore/book[last()] :表示选择bookstore的最后一个book子元素。

[例9]

/bookstore/book[last()-1] :表示选择bookstore的倒数第二个book子元素。

[例10]

/bookstore/book[position()<3] :表示选择bookstore的前两个book子元素。

[例11]

//title[@lang] :表示选择所有具有lang属性的title节点。

[例12]

//title[@lang='eng'] :表示选择所有lang属性的值等于"eng"的title节点。

[例13]

/bookstore/book[price] :表示选择bookstore的book子元素,且被选中的book元素必须带有price子元素。

[例14]

/bookstore/book[price>35.00] :表示选择bookstore的book子元素,且被选中的book元素的price子元素值必须大于35。

[例15]

/bookstore/book[price>35.00]/title :表示在例14结果集中,选择title子元素。

[例16]

/bookstore/book/price[.>35.00] :表示选择值大于35的"/bookstore/book"的price子元素。

五、通配符

# "*"表示匹配任何元素节点。

# "@*"表示匹配任何属性值。

# node()表示匹配任何类型的节点。

[例17]

//* :选择文档中的所有元素节点。

[例18]

/*/* :表示选择所有第二层的元素节点。

[例19]

/bookstore/* :表示选择bookstore的所有元素子节点。

[例20]

//title[@*] :表示选择所有带有属性的title元素。

六、选择多个路径

用"|"选择多个并列的路径。

[例21]

//book/title | //book/price :表示同时选择book元素的title子元素和price子元素。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

请大家详解selenium IDE和XPATH的关系

XPath 简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。 什么是 XPath? XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 XPath 路径表达式 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。 XPath 标准函数 XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值,日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。 XPath 在 XSLT 中使用 XPath 是 XSLT 标准中的主要元素。如果没有 XPath 方面的知识,您就无法创建 XSLT 文档。 XQuery 和 XPointer 均构建于 XPath 表达式之上。XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的函数和运算符。 您可以在我们的《XQuery 教程》中阅读更多有关 XQuery 的知识。 XPath 是 W3C 标准 XPath 于 1999年11月16日 成为 W3C 标准。 XPath 被设计供 XSLT、XPointer 以及其他 XML 解析软件使用。 XPath 节点 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或成为根节点)。 XPath 术语 节点(Node) 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。 [编辑本段]XPath存取函数 名称 说明 fn:node-name(node) 返回参数节点的节点名称。 fn:nilled(node) 返回是否拒绝参数节点的布尔值。 fn:data(item.item,...) 接受项目序列,并返回原子值序列。 fn:base-uri() fn:base-uri(node) 返回当前节点或指定节点的 base-uri 属性的值。 fn:document-uri(node) 返回指定节点的 document-uri 属性的值。 ======================= selenium用XPath技术来记录网页元素的位置和属性.就是这么简单,没办法,有些问题只能自己帮自己回答,不是我想的,分不多.

XML XPATH

1、 XmlNodeList list = myDoc.SelectNodes("/root/list/catalog[@orders >'3'and catalogtype='0']");2、 XmlNodeList list = myDoc.SelectNodes("/root/list/catalog[@catalogname='军事新闻']");3、 XmlNodeList list = myDoc.SelectNodes("/root/list/catalog[starts-with(catalogname,'房产')]");4、这个没有想到简便的方法。5、 XmlNodeList list = myDoc.SelectNodes("/root/list/catalog[count(@comment)=0]");

XPath解析XML

先给你个网址参考 http://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html然后说一下步骤1.因为AllRoute节点是根节点,可以直接Element element = document.getDocumentElement();然后String value = element.getAttribute("FromCity");另一个属性同理2.参考上面的文档,大概写了一下,没环境测试,主要就是找到那个节点对象后,将nodelist解析后,获取其所有属性,然后找ToTime属性try {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();factory.setNamespaceAware(true); // never forget this!DocumentBuilder builder = factory.newDocumentBuilder();Document doc = builder.parse("test.xml");XPathFactory factorys = XPathFactory.newInstance();XPath xpath = factorys.newXPath();XPathExpression expr = xpath.compile("//AllRoute/Route/RouteDetailInfo/AllFlight/text()");Object result = expr.evaluate(doc, XPathConstants.NODESET);NodeList nodes = (NodeList) result;for (int i = 0; i < nodes.getLength(); i++) {Node node = nodes.item(i);NamedNodeMap mpas = node.getAttributes();for (int j = 0; j < mpas.getLength(); i++) {Node property = mpas.item(i);if (property.getNodeName().equals("ToTime")) {System.out.println(property.getNodeValue());}}}} catch (Exception e) {e.printStackTrace();}

xpath如何获取节点下的所有子孙节点的文本

可以使用List<WebElement> elements = driver.findElements(By.xpath("//td[contains(text(),'MOON')]"))函数,再获得elements的长度即可

用Python爬取网页并用xpath解析,得到一个内容相同的集合,为什么

问题出在你每次得到的都是同一个list 每次取list[0] 当然永远是重复的第一个元素。

问题出在这个//*[@id="newsRegion"]/ul/li 取得的所有的li不是一个个别的li。返回的list 虽然有几十个元素,但每一个用后面的xpath匹配都是可以得到相同的结果

  • 本文相关:
  • java通过xpath解析xml性能比较详解
  • java selenium xpath 定位实现方法
  • java使用xpath解析xml示例分享
  • java使用xpath和dom4j解析xml
  • 深入xpath的详解以及java示例代码分析
  • java编程之xpath介绍
  • 用asp与xml实现交互的一个实例源码
  • javascript xml xsl取值及数据修改
  • 读大数据量的xml文件的读取问题
  • 一个用xslt样式将xml解析为xhtml的类transformbinder(兼容ff和i
  • 用xslt将xml解析成xhtml的代码
  • asp读取xml文件和记数
  • 使用xsl将xml文档中的cdata注释输出为html文本
  • xml简介_动力节点java学院整理
  • utf8转成gb2312乱码问题解决方案
  • 读写xml文件的2个小函数
  • 请大家详解selenium IDE和XPATH的关系
  • XML XPATH
  • XPath解析XML
  • xpath如何获取节点下的所有子孙节点的文本
  • 用Python爬取网页并用xpath解析,得到一个内容相同的集合,为什...
  • xpath如何获得属性字符串比如<user username="xxx">我如...
  • Selenium中关于XPath中节点后面[1]的诡异问题?
  • 200分求解:dom4j 使用XPATH解析。。诡异的问题
  • xpath是什么,怎么用?
  • 用js 根据html生成xpath 求高手!!!!!!!!!!!!!!!!
  • java使用dom4j的xpath问题
  • try xpath 怎么用
  • xpath 路径表达式。node()和*的区别
  • C#用xpath查找某节点如何写?
  • selenium2.0下的WebDrivert在IE上通过xpath定位元素时如何提...
  • 怎么往xpath contains函数里传变量
  • 什么是XPath 注入?
  • python xpath解析返回对象怎么处理
  • php DOMXPath怎么获取和设置子节点值
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved