有段html代码 <table border="0" cellpadding="5" cellspacing="0" width="100%" class="ms-listviewtable"><tr><th class="ms-vh2">No</th><th class="ms-vh2">Name</th><th class="ms-vh2">Description</th><th class="ms-vh2">File Revision</th><th class="ms-vh2">File Size</th></tr><tr><td class="ms-vb2">1</td><td class="ms-vb2"><a href="http://sharenet.hqcec.com/dms/default.aspx?link=pw%3A%5C%5Cpw-int-hqbj%3Apw%5CDocuments%5C5043E%5C(C)%3A%20Exchange%20Area%5C02.%20Engineering%5C03%20Water%20Process%5C0002-00-15-B-E-3-33-001_PB%5C0002-00-15-121-B-E-3-33-001_PB%20COVER.doc" target="_blank">0002-00-15-121-B-E-3-33-001_PB COVER.doc</a></td><td class="ms-vb2">0002-00-15-121-B-E-3-33-001_PB COVER</td><td class="ms-vb2"></td><td class="ms-vb2">180224</td></tr><tr><td class="ms-vb2">2</td><td class="ms-vb2"><a href="http://sharenet.hqcec.com/dms/default.aspx?link=pw%3A%5C%5Cpw-int-hqbj%3Apw%5CDocuments%5C5043E%5C(C)%3A%20Exchange%20Area%5C02.%20Engineering%5C03%20Water%20Process%5C0002-00-15-B-E-3-33-001_PB%5C0002-00-15-121-B-E-3-33-001_PB.xls" target="_blank">0002-00-15-121-B-E-3-33-001_PB.xls</a></td><td class="ms-vb2">0002-00-15-121-B-E-3-33-001_PB</td><td class="ms-vb2"></td><td class="ms-vb2">204800</td></tr></table> 想办法取出所有<a>标签的数据拼成字段 求助,什么方法都行
需要后台代码搞定
<script>
$(function(){
var _html=[];
$("table a").each(function(i){
_html[i]=$(this).html();
});
document.write(_html.join(""));
});
</script>
试试看 用js应该就可以搞定的。
后台搞定啊,哥们!
@miloss: 嗯 ,后台抓数据是吧 , 给你一个地址 非常好用HtmlAgilityPack.dll
http://www.cnblogs.com/xffy1028/archive/2011/12/01/2270430.html
@_popc: 能不能麻烦你帮忙写写啊 里面没啥啊
@miloss: ..咳咳, 你自己来吧, 方法告诉你拉, 动手就多了解一个知识点的了。 然后实在不行, 你就用js实现也可以, 具体的后台来获取这段打印的字符串。发动你聪明的大脑哈。
@_popc: 我也是用HtmlAgilityPack. xpath定位。
$(function(){
var _html=[];
$("table a").each(function(i){
_html.push($(this).html());
});
alert(_html.join(","));
});
哥们 需要后台取数据
@miloss:
List<string> result=new List<string>();
MatchCollection mch=Regex.Matchs(html,@"<a.*?>.*?</a>");
foreach(Match m in mch)
{
result.Add(Regex.Replace(m.Value,@"<a.*?>|</a>","");
}
@Yu: 能把那<a>里面的href取出来吗?
List<string> hrefs=new List<string>(); MatchCollection mch=Regex.Matchs(html,@"<a.*?>.*?</a>"); foreach(Match m in mch) { hrefs.Add(Regex.Replace(m.Value,@"<a.*?href=\"(.*?)\".*?>.*?</a>","$1")); }
@miloss:
@Yu: 哥们 @"<a.*?href=\"(.*?)\".*?>.*?</a>","$1" 报错了啊
@Yu: 哥们 @"<a.*?href=\"(.*?)\".*?>.*?</a>","$1" 报错了啊
@miloss: 报错,具体内容?
@Yu: 你看代码啊,黑色字体不就是显示错误啊, 正则需要编译一下,但还是报错 ,你看你的代码也是有黑色字体啊
@miloss:
不好意思,我手写上去,没有没测过,下面这个可以的了
MatchCollection mch=Regex.Matches(html,@"<a.*?>.*?</a>"); foreach(Match m in mch) { hrefs.Add(Regex.Replace(m.Value, "<a[^>]*href=\"([^>]*)\"[^>]*>.*?</a>", "$1")); }
用jquery来实现
先把string转为 char[]
然后遍历数组,当连续出现<和a的时候开始拷贝内容直到</a>出现
考虑正则表达式:http://deerchao.net/tutorials/regex/regex.htm