社会化媒体营销

【+】

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

ljky2006乐园

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正则表达式,xpath 正则,xpath表达式,xpath函数,xpath,xpath语法,xpath教程,python xpath,xpath定位,xpath是什么
XPath 字符串函数

XPath 字符串函数

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

贡献者:w3693061

xpath详解总结,很全面

xpath详解总结,很全面

取逻辑非用 not《》函数。 请看一个典型的 XPath ...《节点 名和命名空间都匹配》 //message[@id=0]/...Language 属性默认是 正则表达式,不是 XPath 语言。...

贡献者:园丁网数学

xpath的使用方法

xpath的使用方法

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

贡献者:rockyylt

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

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

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

贡献者:ljky2006乐园

XPath 节点集函数

XPath 节点集函数

这些元素节点的 ID 属性与变量字符串指定的值匹配 返回节点集中第一个节点的...个节点的完整名称 XPath 运算符和节点集函数可以合并使用,共同构成定位路径表达式...

贡献者:w3693061

XPath 表达式

XPath 表达式

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

贡献者:wj10060406

PHP DOMXpath 查询表达式详解

PHP DOMXpath 查询表达式详解

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

贡献者:zxmout

文件检索最终版

文件检索最终版

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

贡献者:DDHJY

XPath_教程 2

XPath_教程 2

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

贡献者:happy吴彦

Java中的XPath学习笔记

Java中的XPath学习笔记

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

贡献者:xinshi9608

VisioTCP

TCP的定义及作用

TCP的定义及作用

TCP的定义及作用_计算机硬件及网络_IT/计算机_专业资料。TCP 的定义及作用什么是 TCP/IP 网络协议? 网络协议就是网络中《包括互联网》传递、管理信息的一些规范。...

贡献者:zhangmin199518

TCP 头部选项功能详解

TCP 头部选项功能详解

TCP 头部选项功能详解_互联网_IT/计算机_专业资料。TCP 头部选项功能详解 TCP 头部的选项部分是 TCP 为了适应复杂的网络环境和更好的服务应用层而进行设计的。TCP...

贡献者:小哥啊_2009

TCP协议实例分析_图文

TCP协议实例分析_图文

8、 下面是浏览器确认 Apache 发送的要求释 放链接的 TCP 报文: A 1 2 3 4 28 00 cb 03 B d2 28 32 fb C 44 5d 19 15 D c7 09 85 9e E d...

贡献者:阿杰在此

TCP

TCP

实验内容及要求 1、学习 HTTP 协议的格式和与 TCP 协议的关系 2、了解 HTTP 协议的通信过程; 3、理解 HTTP 协议的无连接、无状态特性。 实验结果《可续页》...

贡献者:银河巨炮999

各种TCP版本

各种TCP版本

各种TCP版本_信息与通信_工程科技_专业资料。[zz]各种 TCP 版本 之 TCP Reno 与 TCP Vegas 共存 实验目的探讨 TCP Vegas 的提出,TCP Vegas 的内涵 ,TCP Vegas...

贡献者:matao409

TCP服务的特点

TCP服务的特点

? TCP 服务的特点传输层协议主要有两个:TCP 协议和 UDP 协议,TCP 协议相对于 UDP 协议的特点是: 面向连接,字节流可靠传输。 使用 TCP 协议通信的双方必须先...

贡献者:helpylee

TCP头结构

TCP头结构

TCP 头结构 TCP 头结构 TCP 头结构 TCP 协议头最少20个字节,包括以下的区域《由于翻译不禁相同,文章中给出相应的英 文单词》 : TCP 源端口《Source Port》:16...

贡献者:liangweichao88

基于WinSock的简单TCP网络编程实验报告

基于WinSock的简单TCP网络编程实验报告

报告人姓名: 学班学号: 级: 期: 实验 成绩 实验项目名称 基于 WinSock 的简单 TCP 网络编程 一、实验目的与要求: 1、学习和掌握 Socket 编程的面向连接编程模...

贡献者:冰女烦恼

TCP抓包分析

TCP抓包分析

TCP 抓包分析一 TCP 格式 源端口:数据发起者的端口号; 目的端口:数据接收方的端口号; 32bit 序列号:标识当前数据段的唯一性; 32bit 的确认号:接收数据方返回...

贡献者:蓝灵飞雪886

TCP协议原理分析

TCP协议原理分析

TCP 报头 TCP 报头总长最小为 20 个字节,其报头结构如下图《图 1》所示; 比特 0 比特 15 源端口《16》 序列号《32》 确认号《32》 TCP 偏移量 《4》 保留 《...

贡献者:caocheng3011

SOAP云计算

2016中国云计算500强《Cloud500》榜单

2016中国云计算500强《Cloud500》榜单

2016 年 7 月 28 日,在第三届中国云计算生态系统峰会现场,商业伙伴咨询机 构正式发布了 2016Cloud500 榜单。这 500 家公司是国内最具实力的云计算公 司的...

贡献者:99112111

云计算 毕业设计

云计算 毕业设计

云计算 毕业设计_互联网_IT/计算机_专业资料。云计算与 openstack 毕 业 设 计 《论 文》 课题名称: 云计算与 openstack 指导教师: 茹兴旺 系专班姓别: ...

贡献者:丶我姓chen

云计算计划书

云计算计划书

云计算计划书 - 如今,高性能计算发展及应用水平已经成为一个城市科研实力乃至一个国家综合实力的重要标志之一。只要在高性能计算领域处于领先地位就等于占领了未来...

贡献者:WXH_666

云计算_图文

云计算_图文

云计算 - 云计算 云计算的三种服务模式:IaaS,PaaS 和 SaaS 云服务”现在已经快成了一个家喻户晓的词了。 如果你不知道 PaaS, IaaS 和 SaaS 的区别,那么也...

贡献者:小小白菜gost

云计算概述_图文

云计算概述_图文

云计算概述_IT/计算机_专业资料。管理科学前沿——云计算 1.云计算概念和分类 1.1 云计算概念云计算的概念仍未得到一致认可。一种说法是:云计算《Cloud Computing...

贡献者:yybaby999

云计算技术综述

云计算技术综述

云计算技术综述摘要:云计算是“以互联网为载体,利用虚拟化等手段整合大规模分布式可配置的计算资源。 使其以服务的方式提供给用户,满足用户按需使用的计算模式” ,...

贡献者:懂小妮

云计算

云计算

云计算_销售/营销_经管营销_专业资料。annealing 0 引言 云计算成为近年来社会各界研究的热 点,它是由网格计算,并行计算,分布式技 术发展而来的一种新型技术, ...

贡献者:专业代写论文33

什么是云计算

什么是云计算

什么是云计算_计算机硬件及网络_IT/计算机_专业资料。什么是云计算?第六组:常昕,吴林鸿,何杰,王璇 一、理解什么是云计算?为什么是电子商务企业首先提出了 云计算...

贡献者:我忘记看柯南

云计算之我见

云计算之我见

云计算之我见 - 云计算之我见 一、云计算对 IT 技术发展的影响 云计算涵盖了计算机系统结构、计算机网络、并行计算、分布式计算和网格计算等各种技术。云计算的需...

贡献者:娃娃smile2011

云计算的发展现状及看法

云计算的发展现状及看法

云计算的发展现状及看法云计算《cloud computing》是基于互联网的相关服务的增加、使用和交付 模式, 通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。美国...

贡献者:西云的晴天