<tr id='tr1' align='center' border=0 class='headerclass'>
Example text
<tr id='tr11' align='center' border=0 bgColor='99ccff'>
<td id='td1' class='headerclass'>Example Header 1 </td>
<td id='td2' class='headerclass'>Example Header 2 </td>
<td id='td3' class='headerclass'>Example Header 3 </td>
</tr>
<tr id='tr12' align='center"'bgColor='white'>
<td id='v1' class='colclass'>value 1</td>
<td id='v2' class='colclass'>value 2</td>
<td id='v3' class='colclass'>value 3</td>
</tr>
</tr>
以上是我想要抓取的HTML示例。我想获得<tr></tr>
中的示例文本。我尝试使用 InnerText (代码如下所示)但它返回<td></td>
中的所有文本,这不是我想要的。我想只获得示例文本。
var nodes = htmlDoc.DocumentNode.SelectNodes("//tr").Where(x => x.Attributes["id"] != null && x.Attributes["id"].Value.Contains("tr1"));
foreach (var htmlNode in nodes)
{
Console.WriteLine(htmlNode.InnerText);
}
输出:
Example text
Example Header 1
Example Header 2
Example Header 3
value 1
value 2
value 3
谢谢。
答案 0 :(得分:1)
你可以这样做:
var text = doc.DocumentNode.Descendants("tr")
.First(p => p.Attributes["id"] != null &&
p.Attributes["id"].Value.Contains("tr1")).ChildNodes[0].InnerText.Trim();
输出结果为:
Example text