c# 中xpath语法 如何获得元素Node下的所有子元素和孙元素叫item的。 其他地方也有叫item的元素 ,但不能取

c# 中xpath语法 如何获得元素Node下的所有子元素和孙元素叫item的。 其他地方也有叫item的元素 ,但不能取,第1张

XmlElement theNode = null;

XmlElement root = null;

XmlDocument document = new XmlDocument();

documentLoad(@"你的xml位置xml");

root = documentDocumentElement;

theNode=(XmlElement)rootSelectSingleNode("位置/Node);

string name= theNodeGetElementsByTagName("item")Item(0)InnerText;

题主你好,

只用xpath我感觉无法达到题主的目的,因为在我的知识体系中, xpath的最小单位是一个结点或叫一个标签,

也就是说要不你提取value标签,其内容如下:

要不你提取span标签,内容如下:

而上面这两种题主肯定都会, 也不是想要的

-----

所以我能想到的方法有两种:

一种是在提取前使用js将span标签给去掉, 然后就能使用提取value标签的相关xpath得到题主想要的了;

另一种是先将含有span标签的value标签内容提取出来, 然后用正则表达式将span标签给去掉;

-----

如果上面两种方法满足题主的需求,请题主追问说明所用的语言和库,我再补充

=====

希望可以帮到题主, 欢迎追问

之前写过相对父元素及下一个兄弟元素的方法。

这次补充一下xpath相对节点位置查找元素的所有方法。例子就不举了,自己可以去练练。

xpath相对节点查找方法:

1、xpath('/ancestor::')

查找当前节点的所有先辈节点,即父节点或祖父节点

2、xpath('/ancestor-or-self::')

查找当前节点的所有先辈节点以及本身

3、xpath('/attribute::')

获取当前节点的所有属性

4、xpath('/child::')

查找当前节点的所有子节点

5、xpath('/descendant::')

获取当前节点的所有后代节点,即子节点、孙节点

6、xpath('/following::')

获取当前节点结束标签后的所有节点

7、xpath('/following-sibing::')

获取当前节点的下一个兄弟节点

8、xpath('/parent::')

获取当前节点的父节点

9、xpath('/preceding::')

获取当前节点开始标签前的所有节点

10、xpath('/preceding-sibing::')

获取当前节点的上一个兄弟节点

11、xpath('/self::')

选取当前节点

大概也就这么多,这些方法非常实用,特别是有些元素通过自己的属性无法查找到的时候就需要通过相对节点的位置来查找。

对于网页数据抓取,有BeautifulSoup、lxml以及正则表达式三种方法,其中正则表达式过于复杂,而beautifulsoup和lxml使用起来较为方便。以前简单使用过beautifulsoup(美味汤),后面为了扩展一下,熟悉一下lxml进行数据抓取。

先贴一个lxml的简单框架:

其中,最主要的在于xpath路径的获取和解析,而XPath就是地址,具体地,就是需要知道所要寻找的内容处在哪个地址下。一般而言,我们可以根据开发者工具来定位我们需要的元素,然后右击选择其所在xpath,选择初步的路径,如下图所示,

这只是一种简单的方法,更重要的,需要掌握xpath的语法规则,下面分别论述。

使用xpath获取信息,主要包括获取本文和获取属性,基本用法为

对比可以看出,一个是采用text()获取文本,一个是采用@属性获取属性值。而前面标签后面方括号就是来对标签进行筛选的。一般而言,通过选择器可以获取诸如/html/body/div[@class="useful"]/ul/li/text()的信息,但是开头的信息没有标志性,采用//div[@class="useful"]/ul/li/text()即可。

这个地方即涉及到了xpath的语法选择,主要包括以下几点:

而在选择器方面,包括以下几个

除此之外,在获取了一个元素之后,我们需要获取其下面元素的属性,即要对基于xpath获取的元素再次采用xpath,此时的获取方式为:

另外,我们也可以获取节点下面所有的字符串,方法为string(),示例为:

懒得打字了,下面的截图来自W3Cschool, >

以上就是关于c# 中xpath语法 如何获得元素Node下的所有子元素和孙元素叫item的。 其他地方也有叫item的元素 ,但不能取全部的内容,包括:c# 中xpath语法 如何获得元素Node下的所有子元素和孙元素叫item的。 其他地方也有叫item的元素 ,但不能取、关于python的使用xpath怎样获取如下内容、通过xpath相对节点位置查找元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9555478.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存