给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语法规则及实例_IT/计算机_专业资料。XPath 语法规则术语: 一、 XPath 术语: 1. 节点: 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指...

    贡献者:wulq507
    192503
  • xpath详细使用介绍

    xpath详细使用介绍_计算机软件及应用_IT/计算机_专业资料。xpath详细使用介绍如果要告诉别人买一加仑牛奶,您会怎么说?“请去买一加仑牛奶回来” 还是 “从前门出去,...

    贡献者:289520621
    291200
  • XPath实例教程

    XPath 实例教程一、基本的 XPath 语法 实例教程一、基本的 XPath 语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝...

    贡献者:luocb1980
    365779
  • 八爪鱼如何通过xpath实现自定义定位元素

    八爪鱼如何通过xpath实现自定义定位元素_互联网_IT/计算机_专业资料。本文介绍八爪鱼如何通过xpath实现自定义定位元素。八爪鱼·云采集服务平台 www.bazhuayu.com 八爪...

    贡献者:八爪鱼大数据
    136215
  • XPath入门教程整理

    </list> XML 声明《如 <?xml version="1.0" encoding="UTF-8"?>》或文档类型定义《DTD》 没有节点类型,因此在 XPath 中不能引用这类实体。 元素节点代表 ...

    贡献者:li_chun_tao
    172373
  • Xpath使用实例简单粗暴

    Xpath使用实例简单粗暴_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档Xpath使用实例简单粗暴_计算机软件及应用_IT/计算机_专业资料。XPath...

    贡献者:kun_hu
    199496
  • xpath的使用方法

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

    贡献者:rockyylt
    237422
  • JS中常用的xpath特性

    JS中常用的xpath特性_计算机软件及应用_IT/计算机_专业资料。JS中常用的xpath特性JS 中常用的 xpath 特性 //选择所有 dir 元素的值等于 xx 的元素 Dom.document...

    贡献者:李晗影
    408214
加载中...
加载中...
  • XPath入门教程整理

    </list> XML 声明《如 <?xml version="1.0" encoding="UTF-8"?>》或文档类型定义《DTD》 没有节点类型,因此在 XPath 中不能引用这类实体。 元素节点代表 ...

  • xpath的使用方法

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

  • XPath实例教程

    XPath 实例教程一、基本的 XPath 语法 实例教程一、基本的 XPath 语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝...

  • xpath详细使用介绍

    xpath详细使用介绍_计算机软件及应用_IT/计算机_专业资料。xpath详细使用介绍如果要告诉别人买一加仑牛奶,您会怎么说?“请去买一加仑牛奶回来” 还是 “从前门出去,...

  • 八爪鱼如何通过xpath实现自定义定位元素

    八爪鱼如何通过xpath实现自定义定位元素_互联网_IT/计算机_专业资料。本文介绍八爪鱼如何通过xpath实现自定义定位元素。八爪鱼·云采集服务平台 www.bazhuayu.com 八爪...

24小时热门信息
  • Docker 学习笔记

    //github.com/yeasy/docker_practice/raw/master/_local/.bashrc_do cker; echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; ...

    贡献者:luziq
    245042
  • 为什么Docker能做这么多事

    为什么Docker能做这么多事_计算机软件及应用_IT/计算机_专业资料。为什么Docker能做这么多事为什么 Docker 能做这么多事本教程有三个目标:说明 Docker 解决的问题...

    贡献者:coolhzzmy3
    104889
  • docker in dockers错误

    docker run -d -p 127.0.0.1:8080:8080 -v /var/lib/jenkins:/var/jenkins_hom e --add-host=dockerhost:`/sbin/ip route | /usr/bin/awk '/...

    贡献者:崩高级
    248184
  • docker镜像仓库常见问题汇总

    docker镜像仓库常见问题汇总_互联网_IT/计算机_专业资料。解决docker镜像《V2》仓库删除问题 Docker 镜像仓库常见问题汇总安装镜像仓库 v2 yum installdocker-distribution...

    贡献者:missrian
    188033
  • docker环境搭建

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

    贡献者:张小飞705
    767694
  • docker学习文档

    docker学习文档_计算机软件及应用_IT/计算机_专业资料。docker学习文档,如何创建docker,如何在docker上部署tomcat与mysql服务 docker 学习笔记笔者装的 linux 系统为 ...

    贡献者:plantixweb
    209099
精彩推荐
  • flash样题flash样题

    一、单选题 1、Flash 软件最突出的两大优势是 ___、___。A A、流式播放、矢量动画 B、流式播放、静态图像处理 C、非流式播放、点阵图像 D、非流式播放...贡献者:0_0柒柒103875

  • 初中flash教案初中flash教案

    初中flash教案_其它课程_初中教育_教育专区。《Flash 动画制作课程》 教 案 任课教师:李枫 2015 年 3 月 一、指导思想及教学目标 以江泽民总书记“三个代表”...贡献者:suky41165896

  • flashflash

    flash_其它课程_初中教育_教育专区。中考 第十一部分 FLASH 理论题 1.如图,请判断这是下面哪个动画的时间轴《 》 A、机器人跳舞的逐帧动画 B、蜜蜂跳“8”字舞...贡献者:江南碎梦294953

  • flash教案《课标》_图文flash教案《课标》_图文

    课程名称:计算机动画设计 FLASH 周课时:4 课时/班 任课班级:计算机 1、2 班 授课教师:刘 猛 授课时间:2014——2015 学年度第二学期 六枝特区职业技术学校 ...贡献者:xiaomengge32355536

  • Adobe Flash Player 11.7官方正式版下载Adobe Flash Player 11.7官方正式版下载

    Adobe Flash Player 11.7 官方正式版下载 Flash Player 11.7 系列除了完善了安全性、稳定性和性能、设备兼容性,此次 新版本并没有带来功能上的重大变化,主要是...贡献者:cnbeta_mu666502

  • flashflash

    flash_计算机软件及应用_IT/计算机_专业资料。u8 FLASH_WriteNByte《u32 addr, u8 *dat_buf, u8 no》 《 FLASH_Unlock《》;//Unlock the Flash while《1》 《 ...贡献者:宁仔365294953

  • Flash 基本介绍_图文Flash 基本介绍_图文

    Flash 基础知识补充 一、Flash 的工作界面基本介绍 在 Flash 的【工作区】主界面中,包括了菜单栏、选项卡式的【文档】窗格、 【时间轴】 /【动画编辑器】面板...贡献者:单眼皮姑娘q222054

  • Flash入门教程Flash入门教程

    Flash入门教程_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档Flash入门教程_计算机软件及应用_IT/计算机_专业资料。Flash AS 入门教程本...贡献者:大葵仔166160

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