在HtmlAgilityPack中获取特定选项?

时间:2017-10-05 16:42:38

标签: c# html-agility-pack

可以使用HtmlAgilityPack获得特定选项吗?例如,我选择了这样一个:

<select id="foo">
   <option value="0">1</option>
   <option value="1" selected="selected">2</option> 
</selected>

我需要选择选项。我知道如何获得选项:

doc.DocumentNode.SelectNodes("//select[@id='foo']//option");

3 个答案:

答案 0 :(得分:1)

这应该有效:

doc.DocumentNode.SelectNodes("//select[@id='foo']/option[@selected='selected']");

您可以阅读有关xpath here

的更多信息

答案 1 :(得分:1)

string[] names = new string[] { "john", "beth", "mike", "mary" };

for (int i = 0; i < names.Length; i++)
{
    names[i] = names[i] + (i + 1).ToString();
}

这应该可行,但是通过尝试在选择标记中具有选定值的所选属性的任何深度处获取任何标记类型的第一个节点,它可以更广泛地获得它。

答案 2 :(得分:0)

如果html看起来像这样

<option value="1" selected>2</option> 

应该是这样

doc.DocumentNode.SelectSingleNode("//Select[@id='foo']//*[@selected='']");