如何在htmlagilitypack中找到之前的下一个Anchor标签?

时间:2014-01-05 08:02:31

标签: c#-4.0 html-agility-pack

<html>
<a href="#id_1">Some Text</a>

<div>
Some Text.
</div>

<div>
Some Text
</div>

<a href="#id_2">Some Text</a>

</html>

我希望找到基于第一个的锚标记id_2,即id_1,而不在html页面上使用foreach循环。 我尝试了以下代码:

   HtmlNode dtElement= doc.DocumentNode.SelectSingleNode("//a[@href = '#id_1' ]");

   private static HtmlNode GetNextDDSibling(HtmlNode dtElement)
    {
        var currentNode = dtElement;

        while (currentNode != null)
        {
            currentNode = currentNode.NextSibling;

         if (currentNode.NodeType == HtmlNodeType.Element && currentNode.Name == "a")
                return currentNode;
        }

        return null;
    }

任何帮助都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

这里你可以做的最简单的事情是使用特定的xpath查询来选择下一个同级锚点。

private static HtmlNode GetNextDDSibling(HtmlNode element)
{
    return element.SelectSingleNode("following-sibling::a");
}