C # HTML Agility Pack - использование переменной в SelectNodes

c# html-agility-pack

Вопрос

Каков синтаксис использования переменной в параметрах SelectNodes?

Например,

string foo = "bar";

Это работает

nodes = hd.DocumentNode.SelectNodes("//span[@id='bar']");

Но

nodes = hd.DocumentNode.SelectNodes("//span[@id=foo]");

не находит узлов. Проблема возникает из-за того, что я не могу быть уверен в том, что такое строка идентификатора, поэтому я должен использовать переменный подход. Каков правильный синтаксис?

Html выглядит так:

<span id="bar">text</span>

Популярные ответы

Параметр, принятый SelectNodes, является просто строкой. Вы можете объявить строку заранее или просто сделать все в одной строке.

string idName = "bar";
string xpath = "//span[@id='" + idName + "']";
nodes = hd.DocumentNode.SelectNodes(xpath);

Или другой способ сделать то же самое с другим форматированием строк:

string idName = "bar";
nodes = hd.DocumentNode.SelectNodes($"//span[@id='{idName}']");


Related

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