0

I have to parse html like this:

<div class="navig-nav">
  <ul class="navig" id="navigmenu">
    <li class="navig-expanded navig-selected">Company</li>
    <li class="navig-sub"><div>Summary</div></li>
    <li class="navig-sub"><a href="any_url_1">Some</a></li>
    <li class="navig-sub"><a href="any_url_2">Interesting</a></li>
    <li class="navig-sub"><a href="any_url_3">Information</a></li>
    <li class="navig-item"><a href="any_url_4"><div>From</div></a></li>
    <li class="navig-item"><a href="any_url_5"><div>Web</div></a></li>
    <li class="navig-item"><a href="any_url_6"><div>Page</div></a></li>
  </ul>
</div>

In this menu (as you can see) all classes has more than one child. How can I get "any_url_2" using csQuery if I have just the name "Interesting"?

2 Answers2

0

What about

dom["a:contains('Interesting')"];

Well here's a more complete query:

CQ dom = "your html here";
var result = dom["a[href='any_url_2']:contains('Interesting')"];
if (result.Length == 1)
{
    Console.WriteLine(result[0].Attributes["href"]);
}
kagelos
  • 423
  • 8
  • 19
0

Is this:

dom[".navig-sub"].Find("a:contains('Interesting')")

a good answer?