c#htmlagility根据innertext选择特定节点

时间:2017-05-23 23:02:58

标签: c# html-agility-pack

我在div中有多个标签。这些标签有一个名为“Return”或“Going”的类,如:

<div>
    <label class="going"></label>
    <label class="going"></label>
    <label class="going"></label>
    <label class="going"></label>
    <label class="return"></label>
    <label class="return"></label>
    <label class="return"></label>
</div>

我希望获得两个IEnumerable个标签going和一个return;

之类的东西
var going = node.SelectNodes("label").Where(item => item.InnerHtml == "going");
var return= node.SelectNodes("label").Where(item => item.InnerHtml == "return");

1 个答案:

答案 0 :(得分:0)

您可能想要使用此方法:

public static bool HasClass(this HtmlNode node, params string[] classValueArray)
{
    var classValue = node.GetAttributeValue("class", "");
    var classValues = classValue.Split(' ');
    return classValueArray.All(c => classValues.Contains(c));
}
//use it like this
doc.DocumentNode.Descendants("label").Where(_ => _.HasClass("going"))