如何从c#中的html内容中找到colspan值?

时间:2013-12-16 11:16:02

标签: c# .net regex

如何从html表列中找到colspan的值 我试过了

<td[^>]*>(.*?)</td>

但是在这里添加什么来获得colspan值而不考虑位置? 修改

<table style="width: 100%;">
        <tr>
            <th colspan="3" align="center">
               2013
            </th>

        </tr>
        <tr>
            <td colspan="2" align="center">
               2012
            </td>
            <td>
                &nbsp;
            </td>
        </tr>
        <tr>
            <td>
                &nbsp;
            </td>
            <td>
                &nbsp;
            </td>
            <td>
                &nbsp;
            </td>
        </tr>
    </table>

尝试

<tr[^>]*>\s*<t(d|h)[^>].*?colspan=['"](\d+)['"].*?>\s*(.*?)\s*</t(\1)>\s*</tr>

但如果没有像

这样的引用,这将无效
 <td colspan=2 align="center">
                   2012
                </td>

1 个答案:

答案 0 :(得分:1)

我建议您使用HtmlAgilityPack(可从NuGet获得)进行HTML解析。以下是获取具有td属性的所有colspan元素的示例。然后在循环中,您可以获得每个单元格的colspan属性值:

HtmlDocument hdoc = new HtmlDocument();
hdoc.Load("index.html");
var cells = hdoc.DocumentNode.SelectNodes("//td[@colspan]");
foreach(var cell in cells)
   string colspan = cell.Attributes["colspan"].Value;

更新:对于您的示例HTML,此代码将找到单个单元格,并且colspan将具有值2