日期:2014-05-18  浏览次数:20588 次

(每问10分)asp.net当中如何解析上传过来的HTML文件?

现在有这样的一个需要,就是用户上传一个HTML文件到服务器,服务器解析这个HTML之后,将信息存储到数据库当中。

有几个问题不很明白:

1、ASP.NET有上传组件吗?以前ASP当中一直用的是化境上传,不知道ASP.NET当中是否有上传相关的东西

2、ASP.NET是否有解析HTML的类或者什么?

3、上传之后直接在页面当中解析,估计对于服务器的性能影响很大,所以希望上传之后,在后台进行解析,不知道这应该是一个什么过程?调用一个页面还是需要自己写一个系统服务来轮回监测,发现有需要解析的就解析,还是ASP.NET自身有什么好的方法?

谢谢~~~

------解决方案--------------------
1、有上传组件:fileUpload。
2、也有:htmlDocument等。
3、不知道......
------解决方案--------------------
1.fileupload
2.HtmlDocument
3.你要轉換到流格式嗎?
------解决方案--------------------


美女,

、ASP.NET有上传组件吗?==有 。fileUpload。
、ASP.NET是否有解析HTML的类或者什么?==有,你会采集吗 ?用正则解析。
上传之后直接在页面当中解析,估计对于服务器的性能影响很大,所以希望上传之后,在后台进行解析,不知道这应该是一个什么过程==



页面当中解析 与 后台进行解析, ASP.NET 可以在页面当中解析吗 ?

通常你上传之后,在后台得到, 就是在 后台解析 了。
------解决方案--------------------
这样的解析一般用正则
------解决方案--------------------
使用System.IO.StreamReader+正则来提取内容
------解决方案--------------------
正则表达式,解析
------解决方案--------------------
1.fileupload控件
2.用DOM解析,快的像什么
3.单独写个异步处理类,每次上传成功后调用这个类进行异步处理,处理完毕,调用存储过程存储到数据库~

good luck

------解决方案--------------------
1、前面的回答过了 fileUpload

2、正则,例:

C# code


            string matchText = @"<\s*a\s*[^/>\n]* href\s*=\s*([^\s]+)[^>/\n]*>(.*)</\s*a\s*>"; //正则表达式
            Regex reg = new Regex(matchText, RegexOptions.IgnoreCase); //新建正则对象,忽略大小写
            Match m = reg.Match(inputHtml); //匹配对象,inputHtml是你输入的网页内容的字符串,可以从Stream或别的什么地方得到。
            System.Collections.ArrayList linkList = new System.Collections.ArrayList(); //保存链接的数组
            
            while (m.Success) {
                string[] linkinfo = new string[2];
                linkinfo[0] = m.Groups[1].ToString().Trim(new char[] { '"', '\'' }); //链接地址,链接两头可能会有引号,也可能没有,先去掉一下。
                linkinfo[1] = m.Groups[2].ToString();//链接内容。
                linkList.Add(linkinfo);
            }

------解决方案--------------------
探讨
1.fileupload控件
2.用DOM解析,快的像什么
3.单独写个异步处理类,每次上传成功后调用这个类进行异步处理,处理完毕,调用存储过程存储到数据库~

good luck

------解决方案--------------------
用的哪个正则?我写的那个?多出什么?我测试过啊。
------解决方案--------------------

------解决方案--------------------
mark