文档库 最新最全的文档下载
当前位置:文档库 › 如何获取某个页面元素的XPath值

如何获取某个页面元素的XPath值

如何获取某个页面元素的XPath值
如何获取某个页面元素的XPath值

假如现在我们想要获取百度首页(https://www.wendangku.net/doc/a216563256.html,)的“百度一下”按钮的XPath值,如下图所示:

360安全浏览器:

第一步:首先,在“百度一下”按钮上按右键,然后选择“审查元素”,如下图所示:

第二步:在蓝色代码上按右键,选择Copy XPath,然后“百度一下”按钮的XPath值就在粘贴板上了,你就可以粘贴到其它地方上去了。在这里我粘贴一下,结果为://*[@id="su1"]

火狐浏览器:

需要先安装FireBug插件,

安装好FireBug插件后,在“百度一下”按钮上按右键,然后选择“使用FireBug查看元素”,如下图所示:

在蓝色代码上按右键,选择“复制XPath”,然后“百度一下”按钮的XPath值就在粘贴板上了,你就可以粘贴到其它地方上去了。在这里我粘贴一下,结果为:/html/body/div/div[4]/div[2]/div/form/span[2]/input

谷歌浏览器:

谷歌浏览器获取的XPath 值为://*[@id="su1"]

Python Selenium 常用功能(实战详解)

1.2 把下载好的chromedriver.exe放到Python安装目录下,下载方法 二、启动浏览器 2.1 普通启动方式 #!/usr/bin/python3 # encoding:utf‐8 from selenium import webdriver #启动Firefox浏览器 #browser = webdriver.Firefox() #启动IE浏览器 #browser = webdriver.Ie() #启动Chrome浏览器 #指定驱动方式启动:webdriver.Chrome(executable_path="D://chromedriver.exe") browser = webdriver.Chrome() browser.get("https://www.wendangku.net/doc/a216563256.html,") 2.2 Headless启动方式 说明:浏览器的无界面形态,无需打开浏览器即可运行,此种方式只chrome60+版本#!/usr/bin/python3 # encoding:utf‐8 from selenium import webdriver chrome_hless = webdriver.ChromeOptions() # 使用headless无界面浏览器模式 chrome_hless.add_argument('‐‐headless') chrome_hless.add_argument('‐‐disable‐gpu') # 启动浏览器,获取网页源代码 browser = webdriver.Chrome(chrome_options=chrome_hless) mainUrl = "https://https://www.wendangku.net/doc/a216563256.html,/" browser.get(mainUrl) print(browser.title) browser.quit() ''' 运行之后结果打印百度标题: 百度一下,你就知道 ''' 三、元素定位

java_Dom4j解析XML详解

学习:Dom4j 1、DOM4J简介 DOM4J是https://www.wendangku.net/doc/a216563256.html, 出品的一个开源XML 解析包。DOM4J应用于Java 平台,采用了Java 集合框架并完全支持DOM,SAX 和JAXP。 DOM4J 使用起来非常简单。只要你了解基本的XML-DOM 模型,就能使用。 Dom:把整个文档作为一个对象。 DOM4J 最大的特色是使用大量的接口。它的主要接口都在org.dom4j里面定义:

接口之间的继承关系如下: interface https://www.wendangku.net/doc/a216563256.html,ng.Cloneable interface org.dom4j.Node interface org.dom4j.Attribute interface org.dom4j.Branch interface org.dom4j.Document interface org.dom4j.Element interface org.dom4j.CharacterData interface org.dom4j.CDATA interface https://www.wendangku.net/doc/a216563256.html,ment interface org.dom4j.Text interface org.dom4j.DocumentType interface org.dom4j.Entity interface org.dom4j.ProcessingInstruction 2、XML文档操作1 2.1、读取XML文档: 读写XML文档主要依赖于org.dom4j.io包,有DOMReader和SAXReader两种方式。因为利用了相同的接口,它们的调用方式是一样的。 public static Docum ent load(String filenam e) { Document docum ent =null; try { SAXReader saxReader = new SAXReader(); docum ent =saxReader.read(new File(filename)); //读取XML文件,获得docum ent 对象 } catch (Exception ex) { ex.printStackTrace();

【黑马程序员】使用DOM4J+XPATH解析带有schema约束的XML文件

【黑马程序员】使用DOM4J+XPATH 解析带有schema 约束的XML 文件 当在XML 文件中引入了外部约束,使用了命名空间的时候,如果要使用DOM4J+XPATH 解析XML 文件 可能会出现解析不到节点内容的问题,下面给出一种解决办法。 【步骤一】准备XML 文件和约束文件 XML 文件(aaa.xml ,该文件放置在src 目录下): 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 名称1 1992-11-09 名称2 1999-03-03 约束文件(members.xsd ): 01 02 03 04 05 06 07 08 09 10 11

四种XML解析器比较

1.详解 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。 2)SAX SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。 而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。 选择DOM还是选择SAX?对于需要自己编写代码来处理XML文档的开发人员来说,选择DOM 还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。 DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。 SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag.特别是当开发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。 3)JDOM https://www.wendangku.net/doc/a216563256.html, JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。由于是第一个Java特定模型,JDOM一直得到大力推广和促进。正在考虑通过“Java规范请求JSR-102” 将它最终用作“Java标准扩展”。从2000年初就已经开始了JDOM开发。 JDOM与DOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。 JDOM文档声明其目的是“使用20%(或更少)的精力解决80%(或更多)Java/XML问题”(根据学习曲线假定为20%)。JDOM对于大多数Java/XML应用程序来说当然是有用的,并且大多数开

Selenium XPath定位详解

Selenium XPath定位详解 By:授客 QQ:1033553122 什么是 XPath:https://www.wendangku.net/doc/a216563256.html,/TR/xpath/ XPath 基础教程:https://www.wendangku.net/doc/a216563256.html,/xpath/xpath_syntax.asp selenium 中被误解的 XPath :https://www.wendangku.net/doc/a216563256.html,/blog/category/webdriver/ XPath 是一种在 XML 文档中定位元素的语言。因为HTML可以看做 XML 的一种实现,selenium 用户可使用这种强大语言在web应用中定位元素。 注意:xpath_test.html页面内容如上,并把其放置于src目录下 语法:nodename 语义:选择名为"nodename"的所有节点 说明:必须结合使用 语法:/rootname

语义:选择根元素rootname driver.find_element_by_xpath('/html') 示例: # coding= utf-8 from selenium import webdriver import os import time if __name__ == "__main__": driver = webdriver.Firefox() driver.maximize_window() file_path = os.path.abspath('xpath_test.html') driver.get(file_path) #定位根元素(/root 定位) driver.find_element_by_xpath('/html') time.sleep(5) driver.quit() 语法:parent/child_element 语义:选择父元素parent节点下所有名为child_element的子元素: 示例: # coding= utf-8 from selenium import webdriver import os import time if __name__ == "__main__": driver = webdriver.Firefox() driver.maximize_window() file_path = os.path.abspath('xpath_test.html') driver.get(file_path) time.sleep(2) #定位复选框(parent/child_element 定位) 注意:匹配到第一个就不再往下点击了 driver.find_element_by_xpath('/html/body/form/input').click() time.sleep(5) driver.quit() 语法://element 语义:选择所有的element元素,不管它们在文档中的位置(个人理解:类似全文查找)

XML选择简答题

一选择题 1.W3C的DOM核心定义(A)的最小集合 A.访问和操纵文档对象的接口 B.用XML解析器实现JA V A对象 C.创建“活的”HTML页面的惯例和过程 D.多个文档树 2.下面哪一个选项只包含Schema中的简单类型(D) A.anvURL.char,encoding,UTF-8 B.fullname,double,long,int C.TOKEN,timestamp,range,char D.byte,duration,ENTITY,NMTOKEN 3.对一个复杂结构的呈现时,使用元素而不使用属性的原因是因为 解析:属性取值只能为简单类型,不能包含子元素。 4.在下面XML文档解析过程中,有多少个各startElement 解析:有多少个元素就有多少个startELEMENT 5.下面的XML片断中,元素item1属于(B)名字空间 A.https://www.wendangku.net/doc/a216563256.html, B.https://www.wendangku.net/doc/a216563256.html, C.https://www.wendangku.net/doc/a216563256.html,/namespace D.不属于任何名字空间 7.很多部门间不能正常的交互,但是需要共享一个复杂的XML格式,至少需要共享(C) A.格式的XSDL文档 B.文档的ehXML语法 C.格式的schema文档或者DTD D.样式表 8.为了使XSTL模版更加健壮,对parameters(X,Y)函数进行编辑和错误测试,下面那一项没有必要(D) A.X=Y B.X!=Y C.X不是一个数值 D.Y为空 10.服务器通过运行在网络上的浏览器为客户提供服务,客户的机器性能是有限的,对于XSLT哪一个是最好的方法(D) A.将XML文档和样式表传送到客户端 B.在服务器端采用XSLT输出XHTML文档 C.用XHTML的一个子集,并且用FO应用到样式 D.将XML转换成开放文档格式后呈现 11.一个XML文档由元素和三个元素表示卖方的不同销售价格,最好采用(C)方法 A.在每个price标记前增加一个前缀,例如来区分卖方的不同销售价格

XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较[收藏]

1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。 2)SAX SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。 选择DOM还是选择SAX?对于需要自己编写代码来处理XML文档的开发人员来说,选择DOM还是SAX解析模型是一个非常重要的设计决策。DOM 采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。 DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然

后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。 SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。 3)JDOM https://www.wendangku.net/doc/a216563256.html,/ JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。由于是第一个Java特定模型,JDOM一直得到大力推广和促进。正在考虑通过“Java规范请求JSR-102”将它最终用作“Java标准扩展”。从2000年初就已经开始了JDOM开发。 JDOM与DOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。

课题_C#Xpath解析HtmlDocument的使用方法与递归取得页面所有标签xpath值

C#Xpath解析HtmlDocument的使用方法与递归取得页面所有标签 xpath值 在学习HTML Xpath之前呢我们先来下载一下Dll文件 大家下载单击如下图片下载就行了 接下来就是在程序中引用一下, 然后就可以直接调用了,大家看看 代码吧 普通浏览复制代码 1. //htmlDcoument对象用来访问Html文档s 2. HtmlAgilityPack.HtmlDocument hd = new HtmlAgilityPack.Ht mlDocument();

3. //加载Html文档 4. hd.LoadHtml(strhtml); 5. string str = hd.DocumentNode.SelectSingleNode("//*[@id='e_font']" ).OuterHtml; 这样就可以得到一个标签的HTml代码了 OuterHtml是取包含本身的Html如果是InnerHtml就是取的包含在这个标签之内的所有Html代码了 这点大家要注意了 如果大家想获取Html代码的Xpath路径就是这部分 1.//*[@id='e_font'] 复制代码 这个其实很简单只在大家安装一个Firbug就行了, 看下图片

大家只要进入选择模式,然后选择你要的内容,然后右键复制一下就行了。 然后放在SelectSingleNode()方法里就OK了 下面我说说几个方法和属性的意思吧、 方法 SelectNodes 获取的是一个集合 SelectSingleNode 获取一个标签 SetAttributeValue 设置标签的属性值例如:SetAttributeValue("name","xpath-89");这说明把name属性的值修改为xpath-89 属性 OuterHtml 是取包含本身的Html InnerHtml 取的包含在这个标签之内的所有Html代码了 XPath 获取相对应的Xpath值

XML创建与解析常用方法介绍

XML解析方式介绍 1.DOM4J(Document Object Model for Java) 虽然DOM4J代表了完全独立的开发结果,但最初,它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。从2000下半年开始,它就一直处于开发之中。 为支持所有这些功能,DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。 在添加灵活性、XPath集成和对大文档处理的目标时,DOM4J的目标与JDOM是一样的:针对Java 开发者的易用性和直观操作。它还致力于成为比JDOM更完整的解决方案,实现在本质上处理所有Java/XML问题的目标。在完成该目标时,它比JDOM更少强调防止不正确的应用程序行为。 DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J. 【优点】 ①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。 ②支持XPath。 ③有很好的性能。 【缺点】 ①大量使用了接口,API较为复杂。 2.SAX(Simple API for XML) SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。 选择DOM还是选择SAX?对于需要自己编写代码来处理XML文档的开发人员来说,选择DOM还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档,而SAX 采用的是事件模型。

四中最常用的XML文件解析总结

XML文件学习总结 掌握了XML文件解析的常用的4中方式:DOM解析、SAX 解析、STAX解析以及DOM4j解析XML文件。 一、DOM 解析xml文件 public List parse(String url) throws Exception{ // 1、创建解析工厂 D ocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//创建工厂是单例模式,不能直接new对象,需要调用newInstance来创建对象。 // 2、创建解析器 D ocumentBuilder builder = factory.newDocumentBuilder(); // 3、创建解析器的url F ile file = new File(url); // 4、得到解析后的Document对象 D ocument doncument = builder.parse(file); // 5、通过得到节点名字得到所有同名节点的集合NodeList N odeList nodeList = doncument.getElementsByTagName("student"); // 6、遍历NodeList集合 f or (int i = 0; i < nodeList.getLength(); i++) { // 得到每个节点对象 Node studentNode = nodeList.item(i); Student st = new Student(); NamedNodeMap map = studentNode.getAttributes(); //for(int j=0;j

dom4j api 详解

1、DOM4J简介 DOM4J是 https://www.wendangku.net/doc/a216563256.html, 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。 DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型,就能使用。 Dom:把整个文档作为一个对象。 DOM4J 最大的特色是使用大量的接口。它的主要接口都在org.dom4j里面定义: Attribute定义了 XML 的属性。 Branch 指能够包含子节点的节点。如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为 CDATA定义了 XML CDATA 区域 CharacterData是一个标识接口,标识基于字符的节点。如CDATA,Comment, Text. Comment定义了 XML 注释的行为 Document定义了XML 文档 DocumentType定义 XML DOCTYPE 声明 Element定义XML 元素 ElementHandler定义了Element 对象的处理器 ElementPath被 ElementHandler 使用,用于取得当前正在处理的路径层次信息Entity定义 XML entity Node为dom4j中所有的XML节点定义了多态行为 NodeFilter定义了在dom4j 节点中产生的一个滤镜或谓词的行为(predicate)ProcessingInstruction定义 XML 处理指令 Text定义 XML 文本节点 Visitor用于实现 Visitor模式 XPath在分析一个字符串后会提供一个 XPath 表达式 接口之间的继承关系如下: interface https://www.wendangku.net/doc/a216563256.html,ng.Cloneable interface org.dom4j.Node interface org.dom4j.Attribute interface org.dom4j.Branch interface org.dom4j.Document interface org.dom4j.Element interface org.dom4j.CharacterData interface org.dom4j.CDATA interface https://www.wendangku.net/doc/a216563256.html,ment interface org.dom4j.Text interface org.dom4j.DocumentType

python-selenium -- xpath定位方法详解

web driver提供了八种元素定位的方法:id, name, class name, tag name, link text, partial link text, xpath, css selector 下面主要介绍一下xpath: 一、xpath基本定位用法 1.1 使用id定位 -- driver.find_element_by_xpath('//input[@id="kw"]') 1.2 使用class定位 -- driver.find_element_by_xpath('//input[@class="s_ipt"]') 1.3 当然 通过常用的8种方式结合xpath均可以定位(name、tag_name、link_text、partial_link_text)以上只列举了2种常用方式哦。 二、xpath相对路径/绝对路径定位 2.1 相对定位 -- 以// 开头 如://form//input[@name="phone"] 2.2 绝对定位 -- 以/ 开头,但是要从根目录开始,比较繁琐,一般不建议使用 如:/html/body/div/a

三、xpath文本、模糊、逻辑定位 3.1【文本定位】使用text()元素的text内容 如://button[text()="登录"] 3.2 【模糊定位】使用contains() 包含函数 如://button[contains(text(),"登 录")]、//button[contains(@class,"btn")] 除了contains不是=等于 3.3 【模糊定位】使用starts-with -- 匹配以xx开头的属性值;ends-with -- 匹配以xx结尾的属性值 如://button[starts-with(@class,"btn")]、//input[ends-with(@class,"-special")] 3.4 使用逻辑运算符 -- and、or;如://input[@name="phone" and @datatype="m"] 四、xpath轴定位 4.1 轴运算 ancestor:祖先节点 包括父 parent:父节点 prceding-sibling:当前元素节点标签之前的所有兄弟节点 prceding:当前元素节点标签之前的所有节点 following-sibling:当前元素节点标签之后的所有兄弟节点 following:当前元素节点标签之后的所有节点 使用语法: 轴名称 :: 节点名称 使用较多场景:页面显示为一个表格样式的数据列 如:

XPath详解

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 XML 实例文档 我们将在下面的例子中使用这个 XML 文档。 Harry Potter 29.99 Learning XML 39.95 选取节点 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式: 表达式描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 .. 选取当前节点的父节点。 @ 选取属性。 实例 在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:路径表达式结果

bookstore 选取 bookstore 元素的所有子节点。 /bookstore 选取根元素 bookstore 。 注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径! bookstore/book 选取属于 bookstore 的子元素的所有 book 元素。 //book 选取所有 book 子元素,而不管它们在文档中的位置。 bookstore//book 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。 //@lang 选取名为 lang 的所有属性。 谓语(Predicates ) 谓语用来查找某个特定的节点或者包含某个指定的值的节点。 谓语被嵌在方括号中。 实例 在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果: 路径表达式 结果 /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。 /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。 /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。 /bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 //title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。 //title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 /bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 /bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素 的所有 title 元素,且其中的 price 元素的值须大于 35.00。

dom4j_API详解

dom4j API使用简介 功能简介 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Java软件都在使用dom4j来读写XM L,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包, Hibernate 用它来读写配置文件。 概念 DOM4J是https://www.wendangku.net/doc/a216563256.html,出品的一个开源XML解析包,它的网站中这样定义: Dom4j is an easy to use, open source library for working with XML, XPath an d XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。 DOM4J使用起来非常简单。只要你了解基本的XML-DOM模型,就能使用。然而他自己带的指南只有短短一页(html),不过说的到挺全。国内的中文资料很少。因而俺写这个短小的教程方便大家使用,这篇文章仅谈及基本的用法,如需深入的使用,请……自己摸索或查找别的资料。 之前看过IBM developer社区的文章(参见附录),提到一些XML解析包的性能比较,其中DOM4J的性能非常出色,在多项测试中名列前茅。(事实上DOM4J的官方文档中也引用了这个比较)所以这次的项目中我采用了DOM4J作为XML解析工具。 在国内比较流行的是使用JDOM作为解析器,两者各擅其长,但DOM4J最大的特色是使用大量的接口,这也是它被认为比JDOM灵活的主要原因。大师不是说过么,“面向接口编程”。目前使用DOM4J的已经越来越多。如果你善于使用JDOM,不妨继续用下去,只看看本篇文章作为了解与比较,如果你正要采用一种解析器,不如就用DOM4J吧。 它的主要接口都在org.dom4j这个包里定义: Attribute Attribute定义了XML的属性 Branch Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为, CDATA CDATA 定义了XML CDATA 区域 CharacterData CharacterData是一个标识接口,标识基于字符的节点。如CDATA,Co mment, Text. Comment Comment 定义了XML注释的行为 Document 定义了XML文档 DocumentType DocumentType 定义XML DOCTYPE声明 Element Element定义XML 元素

ZH奶酪:Python使用ElementTree解析XML【译】

ZH奶酪:Python使用ElementTree解析XML【译】 19.7. xml.etree.ElementTree — The ElementTree XML API 源代码: Lib/xml/etree/ElementTree.py Element类型是一种灵活的容器对象,用于在内存中存储层次数据结构。可以说是list和dictionary的交叉。 注意: xml.etree.ElementTree 模块对含有恶意代码的数据是不安全的。如果你想处理不信任的数据请使用XML vulnerabilities. 每个element都有一系列相关属性: 标签,用于标识该元素表示哪种数据(即元素类型) 一些属性,存储在Python dictionary中 一个文本字符串 一个可选的尾字符串 一些孩子elements,存储在Python sequence中

为了创建一个element实例,使用Element 构造函数或者SubElement()工厂函数。 ElementTree 类可以用来包裹一个element结构,用于与XML进行相互转换。 一个C语言实现的可用API :xml.etree.cElementTree. Changed in version 2.7: The ElementTree API is updated to 1.3. For more information, see Introducing ElementTree 1.3. 19.7.1. 综述 这是关于使用xml.etree.ElementTree (ET)的简要综述,目的是演示如何创建block和模块的基本概念。 19.7.1.1. XML 树和elements XML is an inherently hierarchical data format, and the most natural way to represent it is with a tree. ET has two classes for this purpose - ElementTree 表示整个XML文档, and Element 表示树中的一个节点。遍历整个文档r(读写文件)通常使用ElementTree 遍历单独的节点或者子节点通常使用element 。

jquery CSS和xpath选择器

jQuery具有一个相当强大的选择器引擎,提供了完整的选择器语法,允许我们选择几乎所有的元素组合。jQuery 的选择器语法主要是基于 CSS3 和 XPath 的,对 CSS3 和 XPath 了解越多,使用 jQuery 时就越显得心应手。有关 CSS 和XPath,请参阅以下链接: ?CSS 1 ?CSS 2 ?CSS 3 ?xPath 值得注意的是, CSS3 并没有得到现今所有浏览器的支持,因此我们很少使用它。然而,我们仍然可以在 jQuery 中使用 CSS3 选择元素,因为 jQuery 具备自己的自定义选择器引擎,并且实现了对 CSS3 的支持。 想了解 jQuery 选择器更多信息,可以访问 jQuery 的官方文档有关 Selector 的部分。下面,在原官方文档的基础上作一些简单的翻译和说明。 1. CSS 选择器(CSS Selectors) jQuery 完整地支持 CSS 1-3,并且可以在(选择器)表达式里加入自定义的CSS-like (和xPath)。 1.1 jQuery 支持的 CSS 选择器语法 ?*任何 element ?E类型为 E 的所有element(其实 E 可以是任何 element) ?E:nth-child(n)一个类型为 E 的 element,它是其父 element 的第 n 个子 element ?E:first-child一个类型为 E 的 element,它是其父 element 的第一个子 element(相当于E:nth-child(0)) ?E:last-child一个类型为 E 的 element,它是其父 element 的最后一个子 element ?E:only-child一个类型为 E 的 element,它是其父 element 的唯一子element ?E:empty一个类型为 E 的用户界面(UI) element,它没有子 element (包括文本 element) ?E:enabled一个类型为 E 的用户界面(UI) element,它被设置为禁止(disabled) ?E:disabled一个类型为 E 的用户界面(UI) element,它被设置为允许(enabled) ?E:checked一个类型为 E 的用户界面(UI) element,它处于选中(checked)状态(适用于单选按钮和复选框)

微信热门文章采集方法以及详细步骤

https://www.wendangku.net/doc/a216563256.html, 本文将以搜狗微信文章为例,介绍使用八爪鱼采集网页文章正文的方法。文章正文里一般包括文本和图片两种。本文将采集文章正文中的文本+图片URL 。 将采集以下字段:文章标题、时间、来源和正文(正文中的所有文本,将合并到一个excel 单元格中,将使用到“自定义数据合并方式”功能,请大家注意)。同时,采集文章正文中的文本+图片URL ,将用到“判断条件”,“判断条件”的使用,有很多需要注意的地方。以下两个教程,大家可先熟悉一下。 “自定义数据合并方式”详解教程: “判断条件”详解教程: 采集网站:https://www.wendangku.net/doc/a216563256.html,/ 使用功能点: ● 分页列表信息采集 https://www.wendangku.net/doc/a216563256.html,/tutorial/fylb-70.aspx?t=1 ● Xpath https://www.wendangku.net/doc/a216563256.html,/search?query=XPath ● AJAX 点击和翻页

https://www.wendangku.net/doc/a216563256.html, 步骤1:创建采集任务 1)进入主界面,选择“自定义模式” 微信热门文章采集方法步骤1

https://www.wendangku.net/doc/a216563256.html, 2)将要采集的网址URL复制粘贴到网站输入框中,点击“保存网址” 微信热门文章采集方法步骤2 步骤2:创建翻页循环 1)在页面右上角,打开“流程”,以展现出“流程设计器”和“定制当前操作”两个板块。网页打开后,默认显示“热门”文章。下拉页面,找到并点击“加载更多内容”按钮,在操作提示框中,选择“更多操作”

https://www.wendangku.net/doc/a216563256.html, 微信热门文章采集方法步骤3 2)选择“循环点击单个元素”,以创建一个翻页循环

相关文档