使用HtmlAgilityPack采用不同的元素表

时间:2015-03-16 11:30:28

标签: c# html-agility-pack

我有几次这种循环结构。 表1

<table>
    <tbody>
        <tr>
            <th>titulo</th>
        </tr>
    </tbody>
</table>

表2

<table>
    <tbody>
        <tr>
            <th>Texto</th>
            <th>Texto</th>
            <th>Texto</th>
            <th>Texto</th>
        </tr>
    </tbody>
</table>

这种模式重复多次。 如何将它们切换到数组和列表以便我获取每个的值?

1 个答案:

答案 0 :(得分:0)

使用控制台应用程序进行简短演示:

class Program
{
    static void Main(string[] args)
    {
        HtmlDocument doc = new HtmlDocument();
        doc.Load("Demo.html");
        var result = doc.DocumentNode.SelectNodes("//table")
            .Select(table => new //create anonymous type
                             {
                                 Table = table,
                                 HeaderNodes = table.SelectNodes("./tbody/tr/th").ToList() //the th subnodes
                             });
        foreach (var table in result)
        {
            foreach (HtmlNode headerNode in table.HeaderNodes)
            {
                Console.WriteLine( headerNode.InnerText);
            }
            Console.WriteLine("--------------------------");
        }

    }
}

输出:

titulo
--------------------------
Texto
Texto
Texto
Texto
--------------------------