【转】XmlDocument与XPath

2024-03-01 04:18
文章标签 xpath xmldocument

本文主要是介绍【转】XmlDocument与XPath,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      XPath 是 XML 的内容,这里 SelectNodes 是 C# 中 XmlDocument 或 XmlNode 的一个方法。SelectNodes 使用 XPath 来选取节点。

重要语法

SelectNodes("item")

当前节点儿子节点中选择名称为 item 的节点。

SelectNodes("/item")

根节点儿子节点中选择名称为 item 的节点。

SelectNodes("//item")

任意位置的节点上选择名称为 item 的节点。要重点突出这个任意位置,它不受当前节点的影响,也就是说假如当前节点是在第 100 层(有点夸张),也可以选择第一层的名称为 item 的节点。

SelectNodes(".")

选择当前节点。

SelectNodes("..")

选择当前节点的父节点。

SelectNodes("//item[@name]")

在 SelectNodes("//item") 的基础上,增加了一个限制,就是要求拥有 name 属性。

SelectNodes("//item[@name='111']")

在 SelectNodes("//item[@name]") 的基础上,增加了一个限制,就是要求 name 属性值为 111。注意语法中有引号;如果没有引号,则表示是数字类型,对于数字类型可以使用大于号、小于号等,比如:SelectNodes("//item[@v>333]")。

SelectNodes("//item[1]")

选择第一个 item,注意是第一个,不是第二个。

还有这里是指亲兄弟间的第一个 item,也就是说:父级若有三个 item,则选择第一个;若父级第二个 item 的有两个名称同样为 item 的儿子,则第一个儿子会被选择出来;若父级第三个 item 的也有两个名称同样为 item 的儿子,则第一个儿子也会被选择出来……

SelectNodes("//item[last()-1]")

倒数第二个节点,同样是指亲兄弟间的倒数第二个。

SelectNodes("//item[position()<=2]")

位置为第一和第二的节点(第一个节点的 position() 为 1),同样是指亲兄弟间的位置。

SelectNodes("//@name")

SelectNodes("/root/item/@name") 取 item 的 name 属性

选择 name 属性,注意这下选择的是属性,而不是节点了。用 Value 属性获取属性集合的属性值。

SelectNodes("/root/item")

根节点 root 下的 item 儿子节点。

SelectNodes("/root//item")

根节点 root 下的不管是儿子、孙子、重孙子……,只要是名称为 item 的统统选取出来。

通配符

  • 可用 * 表示任意节点名称,比如 SelectNodes("/channel/*/item");
  • 用 @* 表示任意属性;
  • 用 node() 表示任意类型的节点;
  • 用 text() 表示文本类型的节点,实际上也就是表示取文本节点(元素节点下面是文本节点,文本节点下面才是文字)。

运算符

| 表示或。SelectNodes("//item|//channel"),选择 item 或 channel 节点。

 

这篇关于【转】XmlDocument与XPath的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761183

相关文章

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm

css选择器和xpath选择器在线转换器

具体前往:Css Selector(选择器)转Xpath在线工具

[Xpath] Xpath基础知识

1.Xpath(XML Path Language)介绍 Xpath用于在HTML文档中通过元素(HTML标签)和属性(HTML标签的属性)进行数据定位 Xpath的优势:灵活且稳定 HTML树状结构 HTML的结构是树形结构,HTML是根节点,所有的其他元素节点都是从根节点发出的,其他元素都是这棵树上的节点Node,每个节点还可能有属性和文本 所有的HTML标签都有很强的

爬虫二:获取豆瓣电影Top250(Requests+XPath+CSV)

描述: 在上一篇获取豆瓣图书Top250的基础上,获取豆瓣电影Top250的数据并将结果写入CSV文件中。 代码: # -*- coding: UTF-8 -*-import requestsfrom lxml import etreeimport timeimport csv# 从网页上获取电影数据moviedata = []count = 0for i in range(1

爬虫一:获取豆瓣图书Top250(Requests+XPath)

目的: 获取豆瓣图书Top250的所有书目信息。 豆瓣网址:https://book.douban.com/top250 代码: import requestsfrom lxml import etreeimport timefor i in range(10):url = 'https://book.douban.com/top250?start=' + str(25*i)data

HtmlCleaner无法通过XPath获取到数据

通过浏览器F12,选取的Xpath路径有时无法定位到目标即:objects为空,无法通过XPath获取到数据。 原因分析: 不同浏览器获取到的XPath不同XPath路径中有tbody标签Xpath路径有html,示例: Xpath: /html/body/div[2] 希望获取的数据是动态加载的 Xpath路径规则介绍: 语法 选取结点 表达式描述/从根节点选取//从匹配选择的当

爬虫工具:浅谈HtmlCleaner+XPath解析HTML

现在常用的网页解析工具有:Jsoup,JsoupXpath,HtmlCleaner。 jsoup 是一款Java 的XML、HTML解析器,可直接解析某个URL地址、HTML文本内容和已经存在的文件。 JsoupXPath是基于Jsoup的拓展,使用路径的形式解析XML和HTML文档。核心类为JXDocument;JsoupXPath的节点对象JXNode不仅可以获取标签节点,还可以获取属性节

BeautifulSoup4通过lxml使用Xpath定位实例

有以下html。<a>中含有图片链接(可能有多个<a>,每一个都含有一张图片链接)。最后一个<div>中含有文字。 上代码: import requestsfrom bs4 import BeautifulSoupfrom lxml import etreeurl='https://www.aaabbbccc.com'r=requests.get(url)soup = Beauti

打卡学习Python爬虫第五天|使用Xpath爬取豆瓣电影评分

思路:使用Xpath爬取豆瓣即将上映的电影评分,首先获取要爬取页面的url,查看页面源代码是否有我们想要的数据,如果有,直接获取HTML文件后解析HTML内容就能提取出我们想要的数据。如果没有则需要用到浏览器抓包工具,二次才能爬取到。其次观察HTML代码的标签结构,通过层级关系找到含有我们想要的数据的标签,提取出数据。最后保存我们的数据。   1、获取url 这里我们可以看到,有的电影是

爬虫的bs4、xpath、requests、selenium、scrapy的基本用法

在 Python 中,BeautifulSoup(简称 bs4)、XPath、Requests、Selenium 和 Scrapy 是五种常用于网页抓取和解析的工具。 1. BeautifulSoup (bs4) BeautifulSoup 是一个简单易用的 HTML 和 XML 解析库,常用于从网页中提取数据。 它的优点是易于学习和使用,适合处理静态页面的解析。 安装 BeautifulS