如何提取tr标签?

时间:2015-10-04 19:36:25

标签: c# html parsing

如何从第一个<tr bgcolor ..>中提取内部<tr bgcolor="#FFF000"> <div> <table> <tbody> <tr height="10"> ... <tr bgcolor="#FFF000"> <div> <table> <tbody> <tr height="10"> ... ...

<tr>

到目前为止我尝试了什么,但它返回所有内部 nodelist = doc.DocumentNode.Descendants().Where (x => (x.Name == "tr" && x.Attributes["height"] != null && x.Attributes["height"].Value.Contains("10"))).ToList();

batchID = str((s3_file.name).split("/"))[32:-13])

3 个答案:

答案 0 :(得分:1)

您可以使用CsQuery(这是C#的jQuery端口)。它使用CSS选择器,所以你可以做这样的事情:

var innerTr = dom.Select("tr[bgcolor='#FFF000'] tr").First();

答案 1 :(得分:0)

tr不能是其他tr的后代。我假设嵌套标记为td

nodelist = doc.DocumentNode.Descendants()
    .First(x => x.Name == "tr" && x.Attributes.Contains("bgcolor"))
    .Where(x => x.Descendants().Any(y => y.Attributes["height"] != null && x.Attributes["height"].Value.Contains("10")))
    .Select(x => x.Descendants())
    .ToList()

答案 2 :(得分:0)

您可以将XPath用于此

var tr = doc.DocumentNode.SelectSingleNode("//tr[@bgcolor='#FFF000']//tr[@height='10']");