
//th[span[text()="发布时间"]]/following-sibling::td/span
这个XPath表达式首先选择包含文本“发布时间”的<span>元素的<th>元素,然后使用/following-sibling::td选择这个<th>元素的下一个兄弟元素,即包含发布时间的<td>元素。最后,使用/span选择包含发布时间值的<span>元素。
请注意,这个XPath表达式返回的是一个<span>元素,如果您只需要获取该元素的文本值,可以使用text()函数,例如:
//th[span[text()="发布时间"]]/following-sibling::td/span/text()
这将返回包含发布时间的<span>元素的文本值
题主你好,
只用xpath我感觉无法达到题主的目的,因为在我的知识体系中, xpath的最小单位是一个结点或叫一个标签,
也就是说要不你提取value标签,其内容如下:
要不你提取span标签,内容如下:
而上面这两种题主肯定都会, 也不是想要的
-----
所以我能想到的方法有两种:
一种是在提取前使用js将span标签给去掉, 然后就能使用提取value标签的相关xpath得到题主想要的了;
另一种是先将含有span标签的value标签内容提取出来, 然后用正则表达式将span标签给去掉;
-----
如果上面两种方法满足题主的需求,请题主追问说明所用的语言和库,我再补充
=====
希望可以帮到题主, 欢迎追问
本文主要围绕以xpath和lxml库进行展开:
一、xpath 概念、xpath节点、xpath语法、xpath轴、xpath运算符
二、lxml的安装、lxml的使用、lxml案例
一、xpath
1xpath概念
XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式在 XML 文档中进行导航 。XPath 包含一个标准函数库 。XPath 是 XSLT 中的主要元素 。XPath 是一个 W3C 标准 。
2xpath节点
xpath有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
节点关系:父、子、兄弟、先辈、后辈。
3xpath语法
xpath语法在W3c网站上有详细的介绍,这里截取部分知识,供大家学习。
XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
XPath 通配符可用来选取未知的 XML 元素。
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
通过在路径表达式中使用"|"运算符,您可以选取若干个路径。
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
4xpath 轴
轴可定义相对于当前节点的节点集。
5xpath运算符
下面列出了可用在 XPath 表达式中的运算符:
好了,xpath的内容就这么多了。接下来我们要介绍一个神器lxml,他的速度很快,曾经一直是我使用beautifulsoup时最钟爱的解析器,没有之一,因为他的速度的确比其他的htmlparser 和html5lib快了许多。
二、lxml
1lxml安装
lxml 是一个xpath格式解析模块,安装很方便,直接pip install lxml 或者easy_install lxml即可。
2lxml 使用
lxml提供了两种解析网页的方式,一种是你解析自己写的离线网页时,另一种 则是解析线上网页。
导入包:
1解析离线网页:
2解析在线网页:
那么我们怎么获取这些标签和标签对应的属性值了,很简单,首先获取标签只需你这样做:
然后我们可以,比方说,你要获取a标签内的文本和它的属性href所对应的值,有两种方法,
1表达式内获取
2表达式外获取
这样就完成了获取,怎么样,是不是很简单了,哈哈哈。
下面再来lxml的解析规则:
3lxml案例
为了偷懒,我决定还是采用urllib那篇文章的代码,哈哈哈,机智如我。
XPath的语法 我们在前面已经提到过 XPath是用来帮助XSLT在XML源文档中查找定位信息的语言 在实际使用过程中 XPath和XSLT总是混在一起使用 在上面一章的语法例子中我们已经有使用到XPath的语法 只是没有明确点出 但W C将它们分成两个标准 所以我们也将它们拆成两章来讲解
XPath的语法
当前位置 寻址 *** 作 运算符 功能函数
当前位置
当我们使用XSLT处理XML源文档是 我们用Context来表示当前正在被模板处理的节点位置 比如xsl:template match= / 语句中表示Context在文档的根(root)节点 我不知道如何准确的翻译Context这个词 它类似于C语言里的指针 表示程序当前运行的位置 理解Context对于正确处理XSL模板非常重要 当您的XSL模板输出的文档和您想要的不一样 最先应该分析的就是Context在哪里 Location Paths是用于设定你想要寻找的Context节点位置 就类似DOS的目录命令 我们看个例子
<xsl:for each select= child::PEOPLE/descendant::PERSON >
其中child::PEOPLE/descendant::PERSON就是XPath语法 这个表达式就是一个Location Paths 代码说明要显示所有PEOPLE元素的子元素和所有PERSON元素的子元素 通常我们会采用更简单的写法
<xsl:for each select= PEOPLE//PERSON >
我们来解释path的两种表示方法 / 和 // / 是表示当前文档的节点 类似DOS目录分割符 例如 /PEOPLE表示选择根节点下的PEOPLE元素 PEOPLE/PERSON表示选择PEOPLE元素下所有的PESON子元素 // 则表示当前文档所有的节点 类似查看整个目录 例如 //PEOPLE表示选择文档中所有的PEOPLE元素 无论它在什么层次 PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON元素 无论它的层次多深
寻址 *** 作
Axis和Predicate是XPath语法中对Location Paths进行定位 *** 作的语法 具体的用法列表如下
Axis语法表 表达式 简写 说明 self 选择当前的节点 例子 : <TD><xsl:value of select= /></TD> 代码表示在当前位置插入当前的节点包含的文本(text)值 parent 选择当前节点的父节点 attribute @ 选择一个元素的所有属性 例子: <TD><xsl:value of select= @PERSONID /></TD> 选择PERSON元素的所有属性 child 选择当前节点的所有子元素 ancestor 选择当前节点的所有父元素(包括父元素的父元素 类推)
Axis帮助我们选择当前节点周围所有的节点 而Predicate则用来定位当前节点内部的元素 表示方法为方括号[]中加表达式 [ Expression ] 具体举例如下:
PERSON[position()= ] 这句代码表示寻找第二个 PERSON 元素
PERSON[starts with(name B )] 这句代码表示寻找所有名称以 B 开头的PERSON元素
运算符
这一节介绍XPath的运算符(Expressions) 列表如下 运算符 说明 and or 就是普通意义的and or = 等于 != 不等于 > >= 大于 大于等于 < <= 小于 小于等于 注意 在XSL文件中 <符号要用< 表示 div 加减乘除 mod 取模 | 两个节点一起计算
功能函数(Functions)
在XPath里有很多功能函数可以帮助我们精确寻找需要的节点
count()功能 作用 统计计数 返回符合条件的节点的个数 举例 <p><xsl:value of select= count(PERSON[name=tom]) /></p> 说明 代码的用途是显示PERSON元素中姓名属性值为tom有几个
number()功能 作用 将属性的值中的文本转换为数值 举例 <p>The number is: <xsl:value of select= number(book/price) /></p> 说明 代码的用途是显示书的价格
substring() 功能 语法 substring(value start length) 作用 截取字符串 举例 <p><xsl:value of select= substring(name ) /></p> 说明 代码的用途是截取name元素的值 从第一个字母开始显示到第三个
sum()功能 作用 求和 举例 <p>Total Price = <xsl:value of select= sum(//price) /></p> 说明 代码的用途是计算所有价格的和
上面这些功能只是XPath语法中的一部分 还有大量的功能函数没有介绍 而且目前XPath的语法仍然在不断发展中 通过这些函数我们可以实现更加复杂的查询和 *** 作
lishixinzhi/Article/program/ASP/201311/21862
(1)有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面。并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数。例如tinyshop商城。
那么接下来就是提取这个tiny_token_的value值
(2)用xpath提取器获取tiny_token_的值,用xpath定位方法定位到该元素的相对路径,表达式为://[@id="search-form"]/input[3]/@value
(3)引用的步骤与正则表达式的一致,${token}
function loadXMLDoc(dname)
{
if (windowXML;
参考建议: xpath, xslt, ajax
以上就是关于XPATH文本内容匹配th内容,获取td的值全部的内容,包括:XPATH文本内容匹配th内容,获取td的值、关于python的使用xpath怎样获取如下内容、Python解析库lxml与xpath用法总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)