`
JavaSam
  • 浏览: 957380 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript Xpath学习笔记-----document.evaluat();

 
阅读更多

XML实例文档

我们将在下面的例子中使用这个 XML 文档:

"books.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>

IE 和其他浏览器处理 XPath 的方式不同(又是该死的IE)。

IE 使用 selectNodes() 方法从 XML 文档中的选取节点:

xmlDoc.selectNodes(xpath);

Firefox、Chrome、Opera 以及 Safari 使用 evaluate() 方法从 XML 文档中选取节点:

xmlDoc.evaluate(xpathText,contextNode,namespaceURLMapper,resultType,result)


xpathText 表示要计算的 XPath 表达式的字符串。
contextNode 文档中,对应要计算的表达式的节点。
namespaceURLMapper

把一个命名空间前缀映射为一个全称命名空间 URL 的函数。

如果不需要这样的映射,就为 null。

resultType

指定了期待作为结果的对象的类型,使用 XPath 转换来强制结果类型。

类型的可能的值是 XPathResult 对象所定义的常量。

result

一个复用的 XPathResult 对象;

 

 

如果你要创建一个新的 XPathResult 对象,则为 null。

 

实例:

 

下面的例子选取所有 title 节点:

/bookstore/book/title

选取第一个 book 的 title

下面的例子选取 bookstore 元素下面的第一个 book 节点的 title:

/bookstore/book[1]/title这里有一个问题。上面的例子在 IE 和其他浏览器中输出不同的结果。

IE5 以及更高版本将 [0] 视为第一个节点,而根据 W3C 的标准,应该是 [1]。

为了解决 IE5+ 中 [0] 和 [1] 的问题,可以为 XPath 设置语言选择(SelectionLanguage)。

下面的例子选取 bookstore 元素下面的第一个 book 节点的 title:

xml.setProperty("SelectionLanguage","XPath");
xml.selectNodes("/bookstore/book[1]/title");

选取所有价格

下面的例子选取 price 节点中的所有文本:

/bookstore/book/price/text()

选取价格高于 35 的 price 节点

下面的例子选取价格高于 35 的所有 price 节点:

/bookstore/book[price>35]/price

选取价格高于 35 的 title 节点

下面的例子选取价格高于 35 的所有 title 节点:

/bookstore/book[price>35]/title

选取所有的 book 节点

下面的这个例子选取了 bookstore 元素下所有的 book 节点:

xmlDoc.selectNodes("/bookstore/book")下面的例子仅选取 bookstore 元素下第一个 book 节点:
xmlDoc.selectNodes("/bookstore/book[0]")

假如您正在使用 IE 5或更高的版本,可以亲自试一试

注释:IE 5 和 6 会把 [0] 作为第一个节点来执行,但是根据 W3C 的标准,应该使用 [1] !!

注释:这个问题在 IE 6 SP2 中被纠正了!

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    javascript-xpath-latest.js

    javascript-xpath, 虽然比firefox还是慢,但也快多了,上面的例子只需要不 到1秒。换法很简单,如下: selenium = new DefaultSelenium(location, port, browser, targetPath); selenium.start(); selenium....

    perl-XML-XPath-1.42-3.el8.noarch(1).rpm

    官方离线安装包,亲测可用

    PyPI 官网下载 | py_dom_xpath_six-0.2.4-py3-none-any.whl

    `py_dom_xpath_six` 是一个Python库,主要用于处理DOM(Document Object Model)和XPath表达式。XPath是一种在XML文档中查找信息的语言,而DOM则是XML和HTML文档的结构表示。这个库将XPath查询功能与Python的DOM接口...

    xpath_checker-0.4.3-fx.xpi

    xpath_checker-0.4.3-fx.xpi

    perl-XML-XPath-1.13-22.el7.x64-86.rpm.tar.gz

    1、文件内容:perl-XML-XPath-1.13-22.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-XML-XPath-1.13-22.el7.tar.gz #Step2、进入解压后的目录,执行...

    perl-XML-XPath-1.13-22.el7.noarch.rpm

    离线安装包,亲测可用

    xpath_helper-master.rar

    1. 源代码:可能包括XPath Helper的实现,可能是用JavaScript或者其他编程语言编写的,用于解析和执行XPath表达式。 2. 文档:可能有用户手册、API参考、开发者指南等,帮助用户理解和使用XPath Helper。 3. 测试...

    xpath.js:xpath.js-JavaScript中的开源XPath 2.0实现(与DOM无关)

    ------------------------------------XPath.js - Pure JavaScript implementation of XPath 2.0 parser and evaluator------------------------------------Copyright (c) 2012 Sergey IlinskyDual licensed under ...

    xpath_checker-0.4.4-fx.xpi

    xpath_checker-0.4.4-fx.xpi

    xpath-helper.zip

    本压缩包文件"xpath-helper.crx"很可能是一个Chrome浏览器的扩展程序,旨在提供实时的XPath查询支持。 XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,如元素、...

    JsoupXpath-0.3.2.jar 完整版

    JsoupXpath 是一款纯Java开发的使用xpath解析提取html数据的解析器,针对html解析完整实现了W3C XPATH 1.0标准语法,xpath的Lexer和Parser基于Antlr4构建,html的DOM树生成采用Jsoup,故命名为JsoupXpath....

    Python库 | xpath_string-0.0.2-py3-none-any.whl

    《Python库xpath_string-0.0.2-py3-none-any.whl的探索与应用》 在编程领域,Python以其简洁、易读的语法和强大的库支持,深受开发者喜爱。在处理XML数据时,XPath(XML Path Language)是一种强大的查询语言,而...

    xpath2.js:xpath.js-JavaScript中的开源XPath 2.0实现(与DOM无关)

    xpath2.js-XPath 2查询语言的纯JavaScript实现关于xpath2.js是JavaScript中与DOM无关的开源实现。 执行引擎使用规范规定的XML Schema 1.1数据类型进行操作。特征全面的语言支持通过自定义DOMAdapter使用XPath 2.0...

    dom4j-1.6.1.jar-306 KB; jaxen-1.1-beta-6.jar-238 KB两个包

    此外,DOM4J还支持XPath表达式,使得开发者能更便捷地定位和操作XML文档中的节点。 Jaxen-1.1-beta-6.jar是另一个Java库,主要负责提供统一的XPath查询引擎。XPath是一种在XML文档中查找信息的语言,它可以用来选取...

    JsoupXpath-0.3.2.jar.rar

    JsoupXpath-0.3.2.jar 是一个Java库,它扩展了Jsoup库的功能,引入了XPath支持。Jsoup是一个流行的Java库,用于处理和解析HTML文档,提供了类似于jQuery的API,使得在Java中操作HTML变得简单易行。然而,原生的Jsoup...

    PyPI 官网下载 | xpath_string-0.0.2-py3-none-any.whl

    资源来自pypi官网。 资源全名:xpath_string-0.0.2-py3-none-any.whl

    selenium-java-2.47.1.zip

    3. **docs**:文档目录,可能包含了API参考、用户指南等,帮助开发者学习如何使用Selenium。 4. **examples**:示例代码,展示了一些基本的测试用例,有助于快速上手。 5. **build.xml**:Ant构建文件,用于编译和...

    Python库 | xpath_string-0.0.2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:xpath_string-0.0.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

Global site tag (gtag.js) - Google Analytics