C# 获取 HTML元素 的 所有属性值的 正则 有点小问题,请指点下
flyso 2016-01-12 10:14:40 所用类:
public static Hashtable getAttrs(string HtmlElement)
{
Hashtable ht = new Hashtable();
MatchCollection mc = Regex.Matches(HtmlElement, @"([^\s=]+)=(['""\s]?)([^'""]+)\2(?=\s|$|>)");
foreach (Match m in mc)
{
ht[m.Groups[1].Value] = m.Groups[3].Value;
}
return ht;
}
代码如下:
string html ="<img src=\"/images/file/jinpai_20151110.jpg?v1\" border=0 width='1000' height=\"60\" alt=\"金牌视频域名拍卖\" sql=\"select * from tableX where id=11 \">";
string html2 ="<img src=\"/images/file/jinpai_20151110.jpg?v1\" border=0 width='1000' height=\"60\" alt=\"金牌视频域名拍卖\" sql=\"select * from tableX where id=‘11’ \">";
Hashtable ht = HTML.getAttrs(html); //使用HTML2结果就不正确了
foreach (DictionaryEntry d in ht)
{
Response.Write("key:" + d.Key + " Value:" + d.Value + "</br>");
}
html获得的结果是正确的:
key:border Value:0
key:src Value:/images/file/jinpai_20151110.jpg?v1
key:height Value:60
key:sql Value:select * from tableX where id=11
key:width Value:1000
key:alt Value:金牌视频域名拍卖
如果用HTML2就不行了
现在得到了错误结果为
key:id Value:11
key:border Value:0
key:src Value:/images/file/jinpai_20151110.jpg?v1
key:height Value:60
key:width Value:1000
key:alt Value:金牌视频域名拍卖
正确结果应该为
key:border Value:0
key:src Value:/images/file/jinpai_20151110.jpg?v1
key:height Value:60
key:sql Value:select * from tableX where id=’11‘
key:width Value:1000
key:alt Value:金牌视频域名拍卖