C # HTML Agility Pack: utilizzo di una variabile in SelectNodes

c# html-agility-pack

Domanda

Qual è la sintassi per l'utilizzo di una variabile nei parametri SelectNodes?

Per esempio,

string foo = "bar";

Questo funziona

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

Ma

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

non trova nodi Il problema sorge perché non posso essere sicuro di quale sarà la stringa id, quindi devo usare l'approccio variabile. Qual è la sintassi corretta?

L'html sembra

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

Risposta popolare

Il parametro accettato da SelectNodes è solo una stringa. Puoi dichiarare una stringa in anticipo o semplicemente fare tutto in una riga.

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

O un altro modo per fare la stessa cosa con un formattatore di stringhe diverso:

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


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché