Внутренний текст Игнорировать все слова перед

Я очищаю внутренний текст таблицы, но в этом столбце есть всплывающая подсказка, в которой функция 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 (" ", ""), но, очевидно, он не удалит эти слова перед ним, кроме самого  .

Любая помощь приветствуется! Благодарю вас!

По просьбе Алексея таблица 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>

Все было в порядке, только колонка с всплывающей подсказкой.


person Shyuan    schedule 08.01.2014    source источник
comment
Вы можете показать HTML? Может быть намного проще получить текст определенных элементов, чем пытаться разобрать комбинированный innerText...   -  person Alexei Levenkov    schedule 09.01.2014
comment
Привет, Алексей, я обновил свой вопрос, включив в него фрагмент HTML. :) Спасибо за внимание.   -  person Shyuan    schedule 09.01.2014
comment
Очевидно, что если вы получаете innerText из определенных элементов div, вам не нужно делать нелепое разбиение строк. Что-то около div/div[2]...   -  person Alexei Levenkov    schedule 09.01.2014
comment
Привет, Алексей, есть ли способ игнорировать div в этой строке HtmlNodeCollection cols3 = rows[i].SelectNodes(".//td[3]");? Имя находится в <td>, а не в <div>, поэтому в основном я хочу полностью игнорировать данные в двух <div></div>.   -  person Shyuan    schedule 09.01.2014
comment
Привет Алексей, я попробовал это, и это работает. HtmlNodeCollection cols3 = rows[i].SelectNodes(".//td[3]/text()"); :)   -  person Shyuan    schedule 09.01.2014
comment
Хорошо, спасибо за ваши подсказки и советы, я обязательно проверю элементы, прежде чем переходить к разбиению строк. :)   -  person Shyuan    schedule 09.01.2014


Ответы (4)


Вы можете использовать регулярное выражение, чтобы игнорировать все до & nbsp;

Посмотрите здесь: http://www.regular-expressions.info/

person Matt Webber    schedule 08.01.2014

В JQuery: http://jsfiddle.net/qG4Px/2/

In C#:

string test = "Some text &nbsp; more text";
test.Remove(0,test.IndexOf("&nbsp")+6);
person Rob McCabe    schedule 08.01.2014

Рассмотрите возможность использования комбинации 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;
}
person Scott Gulliver    schedule 08.01.2014

Отвечая на мой собственный вопрос, спасибо всем за подсказки: D

Я попробовал это, и это работает. Это не будет принимать во внимание какие-либо <div></div> в <td></td>, вместо этого будет приниматься только «текст» внутри <td></td>

HtmlNodeCollection cols3 = rows[i].SelectNodes(".//td[3]/text()");

:)

person Shyuan    schedule 08.01.2014