C# HtmlAgilityPack parse <ul>

c#, html, html-agility-pack, parsing

Solution

Something like this might suit your needs.

//Assumes your document is loaded into a variable named 'document'

List<string> dataAttribute = new List<string>(); //This will contain the long # in the data attribute
List<string> spanText = new List<string>();      //This will contain the text between the <span> tags
HtmlNodeCollection nodeCollection = document.DocumentNode.SelectNodes("//div[@class='wrapper']//li");

foreach (HtmlNode node in nodeCollection)
{
    dataAttribute.Add(node.GetAttributeValue("data", "null"));
    spanText.Add(node.SelectSingleNode("span").InnerText);
}

Problem

I want to parse the following HTML. What I currently have is ``` var node = document.DocumentNode.SelectSingleNode("//div[@class='wrapper']"); ``` The html is ``` <div class="wrapper"> <ul> <li data="334040566050326217"> <span>test1</span> </li> <li data="334040566050326447"> <span>test2</span> </li> </ul> ``` I need to get the number from the `li data` and the value between the `span` tag. Any help appreciated.

Original source