如何在HtmlAgilityPack中按类获取另一个元素内的元素

时间:2014-04-13 13:02:44

标签: c# asp.net

您好我制作HttpWebResponse并获取HtmlPage以及我需要的所有数据,例如带有日期信息的表,我需要将它们保存到数组列表并将其保存到xml文件

html页面的示例

<table>
<tr>
<td class="padding5 sorting_1">
<span>01.03.14</span>
</td>
<td class="padding5 sorting_1">
<span>10.03.14</span>
</td>
</tr>
</table>

我的代码无法正常使用HtmlAgilityPack,我可以从span获取有类的信息

 private static List<string> GetListDataByClass(string HtmlSourse, string Class)
    {
        List<string> data = new List<string>();
        HtmlAgilityPack.HtmlDocument DocToParse = new HtmlAgilityPack.HtmlDocument();
        DocToParse.LoadHtml(HtmlSourse);

        foreach (HtmlNode node in DocToParse.DocumentNode.SelectNodes("//span[@class='" + Class + "']"))
        {
            if(node.InnerText!=null) data.Add(node.InnerText);

        }

        return data;
    }

,但在我的情况下,td有我试过的课程

foreach (HtmlNode node in DocToParse.DocumentNode.SelectNodes("//td[@class='" + Class + "']"))

但这没效果

母猪我需要读取这些数据才能得到日期01.03.14和10.02.14

播下任何想法我怎么能得到这个日期(01.03.14和10.02.14)?

1 个答案:

答案 0 :(得分:1)

只需将XPath查询更改为:

DocToParse.DocumentNode.SelectNodes("//td[@class='" + Class + "']/span")

这将选择具有相应类的td元素内的所有跨度。