我有一张这样的桌子。我想从td标签之间获得正文FOO COMPANY。我怎么能得到它?
<table class="left_company">
<tr>
<td style="BORDER-RIGHT: medium none; bordercolor="#FF0000" align="left" width="291" bgcolor="#FF0000">
<table cellspacing="0" cellpadding="0" width="103%" border="0">
<tr style="CURSOR: hand" onclick="window.open('http://www.foo.com')">
<td class="title_post" title="FOO" valign="center" align="left" colspan="2">
<font style="font-weight: 700" face="Tahoma" color="#FFFFFF" size="2">***FOO COMPANY***</font>
</td>
</tr>
</table>
</td>
</tr>
<table>
我正在使用以下代码,但是nS为空。
doc = hw.Load("http://www.foo.aspx?page=" + j);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//table[@class='left_company']"))
{
nS = doc.DocumentNode.SelectNodes("//td[@class='title_post']");
}
答案 0 :(得分:1)
您正在调用的页面可能会使用JavaScript生成感兴趣的内容。 HtmlAgilityPack不执行JavaScript,因此无法提取内容。确认这一点的一种方法是尝试访问关闭脚本的页面,并尝试查看您感兴趣的元素是否仍然存在。
答案 1 :(得分:1)
var text = doc.DocumentNode.Descendants()
.FirstOrDefault(n => n.Attributes["class"] != null &&
n.Attributes["class"].Value == "title_post")
.Element("font").InnerText;
或
var text2 = doc.DocumentNode.SelectNodes("//td[@class='title_post']/font")
.First().InnerText;
答案 2 :(得分:0)
关闭:nS = doc.DocumentNode.SelectNodes("//td[@class='title_post']//text()");
然后,您可以打开nS节点以检索文本。如果有多个文本节点,则需要迭代它们。
答案 3 :(得分:0)