自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(0)
  • 资源 (12)
  • 收藏
  • 关注

空空如也

Newtonsoft.Json C# MVC中json对象json字符串处理2.0版3.5版4.0版4.5版(历史版本全)

Newtonsoft.Json C# MVC中json对象,json字符串 处理 2.0版3.5版4.0版4.5版,综合以上历史版本,并且有源码。测试可以运行。

2014-04-11

.net代码反编译工具 .NET Reflector 8.2.0.42 官方最新破解版

.net代码反编译工具 .NET Reflector 8.2.0.42 官方最新破解版

2014-04-08

VB.Net to C# Converter 代码转换工具

一款将VB.Net编写的项目转换成C#项目的工具。支持单个文件的代码转换,也支持整个项目代码转换!很好用哦!

2014-04-08

HtmlAgilityPack用于解析Html与Xml的插件,很好用

方便可靠!Html Agility Pack解析HTML页,方便用于抓取网页哦!这个包本身是利用了DOM文档对象模型去解析HTML的。仅需要几行代码,开发者就可以利用DOM 去访问文档中的头部一直到它的孩子结点。HTML Agility包也能通过XPATH去访问DOM中的指定结点,同时,它也包含了一个类可以用来下载远程网站上的网页,这意味者开发者可以利用它,同时下载并且解析HTML网页了,十分方便。 例子一:列出远程网页的META标签   网页的抓取一般涉及到下载指定的网页,并且抓取指定的信息片断。第一个例子指导如何使用Html Agility包去下载一个网页,并且逐一循环显示出HTML页中的同时有名称和content标签的 标签中。   Html Agility Pack包包含了一些类,它们都在HtmlAgilityPack这个命名空间中,因此在使用前,先要引用这个命名空间,如下: using HtmlAgilityPack;   要从网站上去下载网页,可以使用HtmlWeb类的Load方法,当然实现要新建一个HtmlWeb的对象实例,如下: var webGet = new HtmlWeb(); var document = webGet.Load(url);   其中Load方法会返回一个HtmlDocument对象。在上面的代码中,我们把返回的HtmlDocument对象赋值到一个本地变量document中去。HtmlDocument这个类代表了一个完整的HTML文档并且包含了DocumentNode属性,这个属性返回的是一个代表文档根结点的HtmlNode对象。   HtmlNode类有几个属性,都十分简单,主要是用来遍历DOM的,包括:   ParentNode:访问父结点   ChildNodes:访问孩子结点   NextSibling:某个元素的下一个兄弟元素(也就是说同层次元素中的下一个元素)   PreviousSibling :某个元素的上一个兄弟元素(也就是说同层次元素中的上一个元素)   对于结点本身的判断,有如下属性:   Name - 获得或设置结点的名称。对HTML元素来说,它返回标签中的内容,比如对于BODY标签,则返回结果为”body ”,对于[P]标签则返回结果为”p ”,如此类推   Attributes -返回该元素的所有属性的集合   InnerHtml -返回或设置该元素中的HTML内容。   InnerText -返回结点的文本文字。   NodeType -指出结点的类型,可以是Document,Element,Comment或者是文本。   当然,也有很多其他的方法去获得指定的结点的信息,比如,Ancestors方法返回所有的祖先结点,而SelectNodes方法则返回匹配XPath表达式的结点集合。   有了这些方法和属性,现在我们就有很多方法去获得HTML文档中的所有 标签。这个例子中将采用SelectNodes方法。下面的语句调用了document对象的的DocumentNode属性中的SelectNodes方法,使用了xpath表达式”//meta”,返回了所有文档中的 标记。   var metaTags = document.DocumentNode.SelectNodes("//meta");   如果在文档中没有 标签,则metaTags变量会为null,如果有多于一个 标签,则metaTags会是一个HtmlNode的对象集合了,我们可以遍历并且显示它们的属性,如下代码: if (metaTags != null) { foreach (var tag in metaTags) { if (tag.Attributes["name"] != null && tag.Attributes["content"] != null) { ... 输出 tag.Attributes["name"].Value 和 tag.Attributes["content"].Value ... } } }   上面的代码中,首先使用了foreach去循环metaTags集合中的每个元素,然后判断每个元素的name和content属性的值是否为空,如果不空的话,直接输出其内容就可以了,看到了么,根本不需要用正则表达式,十分方便。 解释:HtmlAgilityPack是使用XPath语法,"//comment()"在XPath中表示“所有注释节点”,关于XPath的详细用法请参考XPath的资料。 其他可能有用的技术点: 1、获取网页title:doc.DocumentNode.SelectSingleNode("//title").InnerText; 解释:XPath中“//title”表示所有title节点。SelectSingleNode用于获取满足条件的唯一的节点。 2、获取所有的超链接:doc.DocumentNode.Descendants("a") 3、获取name为kw的input,也就是相当于getElementsByName(): var kwBox = doc.DocumentNode.SelectSingleNode("//input[@name='kw']"); 解释:"//input[@name='kw']"也是XPath的语法,表示:name属性等于kw的input标签。 例子三 修改并保存HTML文档   上面两个例子分别演示了如何使用Html Agility包去抓取一个网页并且解析,但有的情况下,也需要修改文档的DOM结构并且保存到磁盘上。这个例子演示的跟前两个有点相象,要求用户输入一个网页的地址,之后抓取网页,并且对以下两个方面进行了修改。   1. 在程序读取文档的同时,使用程序的方法,动态增加一个新的元素结点,使其成为标签的第一个孩子结点。   2. 文档中所有的链接,改变成以新打开窗口的方式打开,这个设置其targer属性为_blank即可。   在修改完代码后,同时把它保存到用户本地的磁盘上。同样,一开始的步骤跟前面两个是一样的: var webGet = new HtmlWeb(); var document = webGet.Load(url);   接下来,通过Linq语法的扩展方法去查找body元素,下面的代码的意思是:在document结点的所有子孙结点中,查找第一个结点并且它的名称是“body”,如果不存在,则返回null。 var body = document.DocumentNode.Descendants() .Where(n => n.Name == "body") .FirstOrDefault();   如果找到body标签后,我们则创建一个新的HTML元素标签,下面的代码创建了一个新的HTML元素标签(变量名为messageElement),并且指定了其样式属性,为这个标指定了其命名div,说明要创建的是一个   标签,最后为其指定了inner HTML属性的值,当然最后要把建立好的元素结点插入到body标签的开始: if (body != null) { var messageElement = new HtmlNode(HtmlNodeType.Element, document, 0); messageElement.Attributes.Add("style", "width:95%;border:solid black 2px;background-color:#ffc;font-size:xx-large;text-align:center"); messageElement.Name = "div"; messageElement.InnerHtml = "Hello! This page was modified by the Html Agility Pack!Click on a link below... it should open in a new window!"; body.ChildNodes.Insert(0, messageElement); }   接下来,SelectNodes方法会返回所有 var linksThatDoNotOpenInNewWindow = document.DocumentNode.SelectNodes("//a[@href]"); if (linksThatDoNotOpenInNewWindow != null) { foreach (var link in linksThatDoNotOpenInNewWindow) if (link.Attributes["target"] == null) link.Attributes.Add("target", "_blank"); else link.Attributes["target"].Value = "_blank"; }   最后,我们调用save方法去保存我们做的修改,在本文中,将其保存在ModifiedPages目录下,并且用guid的方法生成了其文件名,如下代码: var fileName = string.Format("~/ModifiedPages/{0}.htm", Guid.NewGuid().ToString()); document.Save(Server.MapPath(fileName));   下图显示了运行例子三后的结果,可以看到,我们把页面修改并保存后,在页面的一开始,的确加入了我们要加入的内容,并且你可以试下打开所有页面的链接,都会发现是以新打开链接方式打开的,要注意的是,因为4guysfromrolla网页上使用的都是相对路径,因此图片我们这次没把它们保存下来,所以在这个页面中看不到是正常的。

2014-04-08

全国省市县地区数据(XML 和 Json 格式)三级联动(附带身份证号码前6位) 代码全部完成了

最近的项目要用到全国省市数据,于是到网上找了一些。可是下载下来看一下,格式都不是我想要的。基本上都是分表的,省、市分开保存,有的还有地区表。而自己想要一个表的,或者是一个xml,或者是一个Json。 搜索过程中,找到了国家统计局的省市数据,看页面简单,正好最近在弄数据采集。以其下载别人的,还要扣金币、不如自己采集吧,一方面练习,另一方面也上传供下载,赚些金币,嘿嘿。 好了,牢骚说完了,说正事。 数据来源与国家统计局网站,网址是:http://www.stats.gov.cn/tjbz/xzqhdm/t20090626_402568086.htm (这些数据还包含了行政区域代码,就是身份证号码前6位,可以用来查询身份证归属地^_^) 这个页面数据是有规律的,每个省份包含在 标签内,而城市和地区则用分隔 我是的采集正则表达式是:(|)(\d{6})(\s*)([^<]*) 这里有几个地方需要注意,其实是他们发布数据时的一点点不规则的地方: 1.宁夏回族自治区, 开始时多了个 。上面说了省份是包含在 标签内,所以这个情况如果想只找出省份的话,用 是匹配不到的 2.有些地方的空格是用 &nbsp;,有的地方是全角空格,有的地方是用半角空格,如果有用到空格的地方就注意一下咯,我在保存 xml 和 Json 时,就用到了空格,所以我都做替换了 要注意的就这两点而已,好了,我会把这段文字和 xml、Json 一起打包上传。 压缩包里面是全部写好的,可以直接用。 评论返还全部分数哦。

2013-09-24

全国省市县地区数据(XML 和 Json 格式)三级联动

最近的项目要用到全国省市数据,于是到网上找了一些。可是下载下来看一下,格式都不是我想要的。基本上都是分表的,省、市分开保存,有的还有地区表。而自己想要一个表的,或者是一个xml,或者是一个Json。 搜索过程中,找到了国家统计局的省市数据,看页面简单,正好最近在弄数据采集。以其下载别人的,还要扣金币、不如自己采集吧,一方面练习,另一方面也上传供下载,赚些金币,嘿嘿。 好了,牢骚说完了,说正事。 数据来源与国家统计局网站,网址是:http://www.stats.gov.cn/tjbz/xzqhdm/t20090626_402568086.htm (这些数据还包含了行政区域代码,就是身份证号码前6位,可以用来查询身份证归属地^_^) 这个页面数据是有规律的,每个省份包含在 <P></P> 标签内,而城市和地区则用<BR>分隔 我是的采集正则表达式是:(<P>|<BR>)(\d{6})(\s*)([^<]*) 这里有几个地方需要注意,其实是他们发布数据时的一点点不规则的地方: 1.宁夏回族自治区, 开始时多了个 <BR>。上面说了省份是包含在 <P></P> 标签内,所以这个情况如果想只找出省份的话,用 <P> 是匹配不到的 2.有些地方的空格是用 &nbsp;,有的地方是全角空格,有的地方是用半角空格,如果有用到空格的地方就注意一下咯,我在保存 xml 和 Json 时,就用到了空格,所以我都做替换了 要注意的就这两点而已,好了,我会把这段文字和 xml、Json 一起打包上传。 谢谢大家支持。

2013-09-23

jQuery+js 实现Table表格可任意拖动调整列宽度大小 适用于列表页等表头拖动宽度设置

jQuery+js 实现Table表格可任意拖动调整列宽度大小 适用于列表页等表头拖动宽度设置,完美兼容IE,FireFox,Google Chrome浏览器。

2013-09-23

.net类库(通用版)包含MSsql数据处理方法

.net类库(通用版)包含MSsql数据处理方法

2012-03-05

JSON.cs 通用的json编码解码,综合操作类

JSON.cs 通用的json编码解码,综合操作类;全新整合,测试好用,通用方法

2012-03-05

Json 实例及演示案例源代码

Json 实例及演示案例源代码,类型说明,测试类等全部压缩包

2012-02-22

DTLite4356-0091虚拟光驱

DTLite4356-0091虚拟光驱.rar,一个不错的虚拟光驱工具,支持加密光盘,支持ps,是一个 先进的模拟备份并且合并保护盘的软件,可以备份Saf.

2011-06-01

动软代码生成器Codematic2

动软.net代码生成器 Codematic2 自动生成三层架构 类库源文件 编辑数据库 编辑生成sql文件 复制保存 转移数据库表结构及所有内容。 动软卓越是专业的电子商务解决方案提供商和企业软件开发平台提供者,动软代码生成器是 最好的全功能代码生成器,企业管理软件开发利器,智能化软件开发平台。

2011-06-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除