Innertext忽略了前面的所有词语

时间:2014-01-08 21:43:33

标签: c# html-agility-pack innertext

我正在抓取表的innertext,但是这一列有工具提示,HTMLAgilityPack函数完全抓取工具提示和完全准确的数据。

假设我只是想要他们的名字而我不需要 之前的所有单词,包括 本身。我可以知道如何实现这一目标吗?

Antony Jenkins held the position of CEO at Barclays at the time of this trade. Antony Jenkins
Frits Van Paasschen held the position of Non-Executive Director at Barclays at the time of this trade. Frits Van Paasschen
David A Walker held the position of Non-Executive Chairman at Barclays at the time of this trade. David A Walker

我尝试使用cols6[j].InnerText.Replace (" ", ""),但除了 本身之外,它显然不会删除前面的那些字。

任何帮助将不胜感激!谢谢!

根据Alexei的要求,HTML表格如下:

<tr><th>Trade Date</th><th>Action</th><th>Notifier</th><th>Price</th><th>Currency</th><th>Amount</th><th>Holding</th></tr>
<tr class="on"><td>13-Dec-13</td><td>Scrip Dividend</td><td><div class="TradesInfo"><img onmouseover="$('#TradePopD0').css('visibility', 'visible');" onmouseout="$('#TradePopD0').css('visibility', 'hidden');" src="http://static.lse.co.uk/images/icons/info.png" width="14" height="14" align="left" alt="Trade Notifier Information for Barclays"><div class="TradesPop" id="TradePopD0">Antony Jenkins held the position of CEO at Barclays at the time of this trade.</div></div>&nbsp;Antony Jenkins</td><td>0</td><td></td><td>71</td><td>0</td></tr>

一切都很好,只是带有工具提示的专栏。

4 个答案:

答案 0 :(得分:1)

考虑使用String.Substring和String.IndexOf。

的组合

作为一个非常粗略的例子..

private static string RemoveStringStart(string text)
{
    var splitAt = "&nbsp;";
    if (text.Contains(splitAt))
    {
        text = text.Substring(text.IndexOf(splitAt) + splitAt.Length);
    }

    return text;
}

答案 1 :(得分:1)

您可以使用正则表达式忽略所有内容,直到&amp; NBSP;

看看这里:http://www.regular-expressions.info/

答案 2 :(得分:1)

在Jquery中:http://jsfiddle.net/qG4Px/2/

在C#中:

string test = "Some text &nbsp; more text";
test.Remove(0,test.IndexOf("&nbsp")+6);

答案 3 :(得分:0)

回答我自己的问题,感谢所有给我提示:D

我试过这个并且它有效。这不会考虑<div></div>中的任何<td></td>,而只需要<td></td>

中的“文字”
HtmlNodeCollection cols3 = rows[i].SelectNodes(".//td[3]/text()");

:)