html agility pack - выберите определенный узел

c# html-agility-pack

Вопрос

Мне нужно выбрать узел, который имеет определенное значение:

<td class='formlabel'>Name:</td>

Поэтому у меня есть что-то вроде этого:

HtmlNode selectedNote = html.DocumentNode.SelectSingleNode("//td[@class='formlabel'][starts-with(., 'Name:')]");

Это работает. Но проблема в том, что это выбор с запуском - так, например, если у меня есть такой код:

<td class='formlabel'>Name: some text</td>

Он также будет выбирать узел. Мне нужно что-то, что будет выбирать узел, только если это существует

<td class='formlabel'>Name:</td>

Таким образом, он будет выбирать узел, который имеет только innerText, равный «Name:»

Хм ... Это возможно. Большое спасибо.

Принятый ответ

Я считаю, что вы хотите:

HtmlNode selectedNote = html.DocumentNode.SelectSingleNode("//td[@class='formlabel'][text()='Name:']");

Или

HtmlNode selectedNote = html.DocumentNode.SelectSingleNode("//td[@class='formlabel'][.='Name:']");


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow