给xpath添加正则表达式匹配函数

给xpath添加正则表达式匹配函数xpath正则表达式,xpath 正则,xpath表达式,xpath函数,xpath,xpath语法,xpath教程,python xpath,xpath定位,xpath是什么
社会化媒体营销 > 给xpath添加正则表达式匹配函数

给xpath添加正则表达式匹配函数(1)

xpath添加正则表达式匹配函数

  做网页解析时,将html转成xml格式之后,再利用xpath则可以轻易地截取任何所需要的数据。在使用xpath时,常常会用到其中的一些函数,特别是字符串函数,完整的函数列表可在w3school找到:https://www.w3school.com.cn/xpath/xpath_functions.asp#string)。然而这仅仅是标准xpath里所的,dotnet里这只实现了一部分,特别是本标题所提到的正则匹配函数fn:matches(string,pattern),dotnet里竟然不支持。虽然dotnnet里还是能用诸如contains等判断函数,但比起强大的正则表达式,其实现的功能远远不能满足要求。

  为了能够更加灵活、方便的匹配字符串,需要给xpath添加自定义的正则匹配函数,幸好dotnet了接口,先看看这些基类及接口。

  XsltContext

  封装可扩展样式表转换语言 (XSLT) 处理器的当前执行上下文,使 XML 路径语言 (XPath) 在 XPath 表达式中解析函数、参数和命名空间。需要定义一个继承XsltContext的子类,实现对自定义函数的调用。

  IXsltContextFunction

  为在运行库执行期间在可扩展样式表转换语言 (XSLT) 样式表中定义的给定函数一个接口。实现该接口的子类定义以及自定义函数的功能。

  IXsltContextVariable

为在运行库执行期间在样式表中定义的给定变量一个接口。其子类实现在调用自定义函数时,参数值的计算。

   涉及类比较多,但是在具体实现远没有那么复杂,后续添加其他函数也很方便。

关键代码

实现XsltContext

public class XpathContext : XsltContext    {        // XsltArgumentList to store my user defined variables        private XsltArgumentList m_ArgList;        // Constructors         public XpathContext()        { }        public XpathContext(NameTable nt)            : base(nt)        {        }        public XpathContext(NameTable nt, XsltArgumentList argList)            : base(nt)        {            m_ArgList = argList;        }        // Returns the XsltArgumentList that contains custom variable definitions.        public XsltArgumentList ArgList        {            get            {                return m_ArgList;            }        }        // Function to resolve references to my custom functions.        public override IXsltContextFunction ResolveFunction(string prefix,     string name, XPathResultType[] ArgTypes)        {            XPathExtensionFunction func = null;            // Create an instance of appropriate extension function class.            switch (name)            {                // 匹配正则表达式, XPath1.0没有该方法                case "Match":                    func = new XPathExtensionFunction("Match"12new        XPathResultType[] { XPathResultType.NodeSet, XPathResultType.String }, XPathResultType.Boolean);                    break;                // 去除空格                case "Trim":                    func = new XPathExtensionFunction("Trim"11,                        new XPathResultType[] { XPathResultType.String }, XPathResultType.String);                    break;                default:                    throw new ArgumentException("没有定义" + name + "函数");            }

点击显示全文

分页:12345
  • XPath 表达式

    XPath 表达式标识所有匹配的元素集。 相对特定元素《称为表达式的“上下文”》进行...我们很希望有一种类似正则表达式的东西来规范 查询条件,而 xpath 正是这样一种...

    贡献者:wj10060406
    110657
  • XPath 字符串函数

    XPath 字符串函数_数学_自然科学_专业资料。XPath 字符串函数 字符串函数用来对查询结果进行格式化处理,XPath 支持字符串函数如表 9-8 所示。 表 9-8 字符串...

    贡献者:w3693061
    721690
  • 文件检索最终版

    关键词:Web 数据抽取 XPath 比较 XERG 正则表达式 查看全文 - 下载全文 - ...[检索式]:关键词=正则表达式 and 关键词 =web 《精确匹配》 [检索结果]:5 ...

    贡献者:DDHJY
    698107
  • Java中的XPath学习笔记

    ? XPath 包含一个标准函数库 XPath 含有超过 100 个内建的函数。这些函数用于...匹配任何类型的节点。 实例在下面的表格中,我们列出了一些路径表达式,以及这些...

    贡献者:xinshi9608
    123153
  • xpath的使用方法

    其它类型的数据不能转换为 节点集。 2. 布尔值《boolean》 由函数或布尔表达式...5. 属性及属性在 XPath 中可以利用属性及属性值来匹配元素,要注意的是,元素的...

    贡献者:rockyylt
    237422
  • XPath_教程 2

    1 XPath 教程 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery ...

    贡献者:happy吴彦
    104928
  • PHP DOMXpath 查询表达式详解

    php 通过xpath读取节点,比正则匹配快n倍![php] 1. XPath 简介 2. 3. ...取 逻辑非用 not《》函数。 37.请看一个典型的 XPath 查询表达式: /messages/...

    贡献者:zxmout
    339671
  • 给xpath添加正则表达式匹配函数

    给xpath 添加正则表达式匹配函数做网页解析时, 将 html 转成 xml 格式之后, 再利用 xpath 则可以轻易地截取任何所需要的数据。 在使用 xpath 时, 常常会用到...

    贡献者:ljky2006乐园
    275266
加载中...
加载中...
  • XSLT入门学习资料、XPath转换XML文件

    XSLT入门学习资料、XPath转换XML文件_英语学习_外语学习_教育专区。XSLT入门学习资料、XPath转换XML文件 8.2.2 XSLT 简介 XSLT 提供一套规则,用于将一组元素描述的...

  • C操作xml之xpath语法

    C操作xml之xpath语法 - 以前也发过关于.net 中操作 XML 的帖子,但不是很详细,现在我将详细介绍一下 c#如何操 作 xml 文件,正如学习操作数据库要学习 SQL ...

  • xpath的使用方法

    xpath的使用方法_计算机软件及应用_IT/计算机_专业资料。xpath的使用方法 首先要说的是 XPath 数据类型。XPath 可分为四种数据类型: 1. 节点集《node-set》 节点...

  • 自动化测试工具selenium中如何利用xpath来定位元素

    自动化测试工具selenium中如何利用xpath来定位元素 - 自动化测试工具 selenium 中如何利用 xpath 来定位元素 在开始之前,我们先来熟悉 selenium 中常使用的几个...

  • xpath详解总结,很全面

    请看一个典型的 XPath 查询表达式:/messages/message//child:: node《》[@id=0],其中/messages/message 是路径《绝对路径以"/ "开始》,child::是轴表示在子节点...

24小时热门信息
  • docker学习文档

    docker学习文档 - docker学习文档,如何创建docker,如何在docker上部署tomcat与mysql服务

    贡献者:plantixweb
    209099
  • docker学习之基础知识

    docker学习之基础知识_计算机软件及应用_IT/计算机_专业资料。docker学习入门 内 部 公 开 ▲ Docker 学习之基础知识 Docker 是一个开源项目,诞生于 2013 年初,...

    贡献者:foreverping198
    462582
  • docker使用手册

    docker使用手册_计算机软件及应用_IT/计算机_专业资料。docker使用手册及常用命令 概念Docker daemon Docker images Docker client Docker Registries Docker containers ...

    贡献者:w19821216w
    560967
  • docker从入门到实践

    docker从入门到实践_互联网_IT/计算机_专业资料。docker从入门到实践 超人学院——Docker从入门到实践基础篇 什么是 Docker Docker 是一个开源项目,诞生于 2013 年...

    贡献者:圈圈圆圆heaven
    106996
  • Docker on CentOS

    To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash For more examples and ideas, visit: http://docs...

    贡献者:snake890603
    482090
  • docker环境搭建

    docker环境搭建_计算机软件及应用_IT/计算机_专业资料。docker环境安装全文 Docker 是 PasS 提供商 DoctCloud 开源的一个基于 LXC 的高级容 器引擎,源代码托管在 ...

    贡献者:张小飞705
    767694
精彩推荐
  • 八年级下册《flash》八年级下册《flash》

    嵊州爱德外国语信息组 课题 第 16 课《动画作品的调试与发布》 于佳 知识与技能目标: 1、 掌握动画作品调试与发布的步骤和方法 2、 学会根据需求对 FLASH 影片...贡献者:szwuying309424822

  • FLASHFLASH

    FLASH_计算机软件及应用_IT/计算机_专业资料。知识 1.1Flash CS6 概述及重要概念重点: ①对 Flash 这款软件有一定的了解 ②要求掌握帧,时间轴,图层,场景,笔触...贡献者:雨心の泪148652

  • flash基础知识flash基础知识

    4.3 flash动画类型: 逐帧动画、补间动画《形状补间动画和动作补间动画》 、特殊动画《引导动画、 遮罩动画》 五、动作补间动画 5.1 动画实例——球体移动 ? 先新建...贡献者:众里寻她7777271546

  • adobe flash player安装不了解决方法汇总adobe flash player安装不了解决方法汇总

    adobe flash player 安装不了解决方法汇总 Adobe Flash Player 安装不了怎么办?FlashPlayer 是一款高性能的、轻量型且极具表现力的客户 端运行时播放器。很多朋友...贡献者:lahsram249555

  • 如何下载网页中Adobe Flash Player视频如何下载网页中Adobe Flash Player视频

    如何下载网页中 Adobe Flash Player 视频 工具: PC 和 PC 端的 QQ 浏览器 智能手机和手机端的 QQ 浏览器 步骤: 1、 先用 PC 端的 QQ 浏览器打开你要...贡献者:thzy99359121

  • Flash1Flash1

    《Flash 动画设计》考试资料注意事项: 1、考试时间:2009 年 5 月 18 日晚 18:45-20:25,共计 100 分钟 2、考试地点:2303、2304 教室 3、考试形式:开卷...贡献者:红星闪闪_CC500594

  • Macromedia Flash_8 基础教程Macromedia Flash_8 基础教程

    Flash 8.0 基础教程一、Flash 基础 启动 Flash 在桌面找一个红色图标 双击即可启动,也可以单击“开始” -“所有程序”,在程序菜单中找到 Flash 或者 Macromedia ...贡献者:liusheng61168241

  • Flash四种动画的基本步骤Flash四种动画的基本步骤

    Flash四种动画的基本步骤_动画/交互技巧_PPT制作技巧_实用文档。Flash 四种动画的基本步骤 Flash 动画包括逐帧动画、动作补间动画、形状补间动画、遮罩动画、引导线...贡献者:哈尔祝敏262981

手机版 | 欢迎来到社会化媒体营销
RSS订阅