C#HTML Agility Pack - 在SelectNodes中使用变量

时间:2016-08-28 22:30:44

标签: c# html-agility-pack

在SelectNodes参数中使用变量的语法是什么?

例如,

string foo = "bar";

这有效

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

但是

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

找不到节点。出现这个问题是因为我无法确定id字符串是什么,所以我必须使用变量方法。什么是正确的语法?

html看起来像

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

2 个答案:

答案 0 :(得分:0)

使用它像这样:

string foo = "bar";

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

答案 1 :(得分:0)

SelectNodes接受的参数只是一个字符串。您可以提前声明一个字符串,或者只在一行中完成所有操作。

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

或者使用不同的字符串格式化程序执行相同操作的另一种方法:

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