C # HTML Agility Pack - Usando una variable en SelectNodes

c# html-agility-pack

Pregunta

¿Cuál es la sintaxis para usar una variable en los parámetros de SelectNodes?

Por ejemplo,

string foo = "bar";

Esto funciona

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

Pero

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

no encuentra nodos. El problema surge porque no puedo estar seguro de cuál será la cadena de identificación, así que tengo que usar el enfoque variable. ¿Cuál es la sintaxis adecuada?

El html parece

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

Respuesta popular

El parámetro aceptado por SelectNodes es solo una cadena. Puede declarar una cadena por adelantado o simplemente hacerlo todo en una línea.

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

O otra forma de hacer lo mismo con un formateador de cadena diferente:

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


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué