Мне нужно получить текст без тегов в моем HTML, используя xpath - PullRequest
0 голосов
/ 14 февраля 2019

Я могу добраться до тега, проблема в том, что я не могу получить текст сразу после тега.

Я уже пробовал:

y.SelectSingleNode($"td[5]/font/b[.='{labelCampo}']")
y.SelectSingleNode($"td[5]/font/b[.='{labelCampo}']/text()").InnerText

и многие другие формы.

<td align="left" width="623">

<font class="normal">

<b>Protocolo:</b>

"850160251675 (09/11/2016)"
<br>

Я хочу получить этот номер и дату, а не текст "Protocolo:"

enter code here

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Я решаю это!

Мне просто нужно было использовать .Nextsibiling.innertext в моем первоначальном утверждении

y.SelectSingleNode($"td[5]/font/b[.='{labelCampo}']").NextSibling.InnerText
0 голосов
/ 14 февраля 2019

Вы можете выбрать «обычный» класс и использовать атрибут innerText, чтобы взять число и дату.

Я пробовал этот код, и он полностью работает.

var html =
    @"<html>
    <body><p>
    <table class=\'foo\'>
        <tr><th>hello</th></tr>
        <tr><td>world</td></tr>
    </table>
    <div class=\'test\'>
        <b>Protocolo:</b>
        850160251675 (09/11/2016)
        </div>
    </body></html>";

    var htmlDoc = new HtmlDocument();
    htmlDoc.LoadHtml(html);

    var body = htmlDoc.DocumentNode.SelectSingleNode("//div[contains(@class, 'test')]");

    Console.WriteLine(body.InnerText);

https://dotnetfiddle.net/d4chXg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...