如有下面html文本片断
<table width="100%" cellspacing="1" cellpadding="1" border="0" bgcolor="#ffffff">
<tbody>
<tr id="showItem1" bgcolor="#f5f5f5" >
<td width="7%">产品1</td>
<td>产品2</td>
<td>产品3</td>
<td>产品4</td>
</tr>
<tr id="showItem2" bgcolor="#f5f5f5">
<td> <del>3380.0</del></td>
<td><del>2930.0</del></td>
<td><del>2250.0</del></td>
<td><del>1530.0</del></td>
</tr>
</tbody>
</table>
我需要提取得里面的文本数据如下
产品1,产品2,产品3,产品4
3380.0,2930.0,2930.0,1530.0
c#中没有像js中哪种id取对象方式,我发现对数据取起来十分麻烦,请问有什么操作起来简单取字符数据的方法的
<table width="100%" cellspacing="1" cellpadding="1" border="0" bgcolor="#ffffff">
<tbody>
<tr id="showItem1" bgcolor="#f5f5f5" >
<td width="7%">产品1</td>
<td>产品2</td>
<td>产品3</td>
<td>产品4</td>
</tr>
<tr id="showItem2" bgcolor="#f5f5f5">
<td> <del>3380.0</del></td>
<td><del>2930.0</del></td>
<td><del>2250.0</del></td>
<td><del>1530.0</del></td>
</tr>
</tbody>
</table>
我需要提取得里面的文本数据如下
产品1,产品2,产品3,产品4
3380.0,2930.0,2930.0,1530.0
c#中没有像js中哪种id取对象方式,我发现对数据取起来十分麻烦,请问有什么操作起来简单取字符数据的方法的
就是用正则分析字符串了.
<tbody>
<tr id=""showItem1"" bgcolor=""#f5f5f5"" >
<td width=""7%"">产品1 </td>
<td>产品2 </td>
<td>产品3 </td>
<td>产品4 </td>
</tr>
<tr id=""showItem2"" bgcolor=""#f5f5f5"">
<td> <del>3380.0 </del> </td>
<td> <del>2930.0 </del> </td>
<td> <del>2250.0 </del> </td>
<td> <del>1530.0 </del> </td>
</tr>
</tbody>
</table>
";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"<td[^>]*?>\s*(<\w+>)*([\s\S]*?)(</\w+>)*\s*</td>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection mc = reg.Matches(str);
foreach (System.Text.RegularExpressions.Match m in mc)
{
Response.Write( m.Result("$2") + "<BR>");
}
this.TextBox2.Text = Regex.Replace(this.TextBox1.Text, @"<(?>[^>]*)>", string.Empty, RegexOptions.IgnoreCase);
按td来这样取数据不太现实
第1 一个table会有很多td但这样数据并非我需要,这样会加大数据提取量
第2 因为我需要对取数据按一定机制来进行再组合,所以我就必须知道这组数据是从哪里出来的不然就没法组合。
string str = @"<table width=""100%"" cellspacing=""1"" cellpadding=""1"" border=""0"" bgcolor=""#ffffff"">
<tbody>
<tr id=""showItem1"" bgcolor=""#f5f5f5"" >
<td width=""7%"">产品1 </td>
<td>产品2 </td>
<td>产品3 </td>
<td>产品4 </td>
</tr>
<tr id=""showItem2"" bgcolor=""#f5f5f5"">
<td> <del>3380.0 </del> </td>
<td> <del>2930.0 </del> </td>
<td> <del>2250.0 </del> </td>
<td> <del>1530.0 </del> </td>
</tr>
</tbody>
</table>
";
str = System.Text.RegularExpressions.Regex.Replace(str, "<(?!(/?table)|(/?tr)|(/?td))[^>]*?>", "");
str = System.Text.RegularExpressions.Regex.Replace(str, @"(<\w+)[^>]*?>", "$1>");
System.Xml.XmlDocument dom = new System.Xml.XmlDocument();
dom.LoadXml(str);
System.Xml.XmlNodeList nl = dom.SelectNodes("//tr");
foreach (System.Xml.XmlNode node in nl)
{
Response.Write(node.ChildNodes[0].InnerText + "|"+node.ChildNodes[1].InnerText+"<BR>");
}
http://topic.csdn.net/u/20090803/15/26ad5e35-cede-4a79-a39c-17a412573d71.html