XPath SelectNodes

.net c# html-agility-pack

Вопрос

У меня есть:

<div id="foo">
<a href="/xxx.php"> xx </a>
<a href="/xy.php"> xy </a>
<a href="/uid.php?id=123"> 123 </a>
<a href="/uid.php?id=344"> 344 </a>
</div>

Я как выбрать только элементы, содержащие 'id' в href, используя HtmlAgilityPack?

с выходом:

 <a href="/uid.php?id=123"> 123 </a>
    <a href="/uid.php?id=344"> 344 </a>

Спасибо, Advanced.

Принятый ответ

Следующее выражение XPath должен выбрать все элементы, имеющие a href тега , который содержит текст «ID».

var xpathExpression = "//a[contains(@href, 'id')]";

Я смог выбрать теги с идентификатором в атрибуте href, используя следующий код:

var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(
  @"<div id=""foo"">
    <a href=""/xxx.php""> xx </a>
    <a href=""/xy.php""> xy </a> 
    <a href=""/uid.php?id=123""> 123 </a>
    <a href=""/uid.php?id=344""> 344 </a>
</div>");
var aTags = htmlDoc.DocumentNode.SelectNodes("//a[contains(@href, 'id')]");
foreach(var aTag in aTags)
Console.WriteLine(aTag.OuterHtml);


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему