2016-12-27 4 views
1

Я использую HtmlAgilityPack. Я хочу взять (title1 и title2 только в Title: part) или (number1 и number2 только в Number: part).XPath выбрать текст после текста категории без класса

<div> 
    <span class="dark_text">Title:</span> 
      <a href="linktitle1" title="title1">title1</a>,<a href="link title2" title="title2">title2</a> 
</div> 
//other part same xml 
<div> 
    <span class="dark_text">Number:</span> 
      <a href="linknumber1" title="number1">number1</a>,<a href="linknumber2" title="number2">number2</a> 
</div> 

я попробовать этот код:

HtmlNodeCollection summary = doc.DocumentNode.SelectNodes(".//div/a[not(@id)]"); 
MessageBox.Show(summary.Count.ToString()); 
for (int i = 0; i < summary.Count; i++) 
{ 
     MessageBox.Show(summary[i].InnerText.ToString()); 
} 

но MessageBox показать все из них (title1, title2, number1, Number2). У меня нет подсказки, чтобы взять только 1 часть категории.

ответ

1

Вы можете фильтровать родительский div по содержанию ребенка span, например, следующий должен вернуть title1, TITLE2:

//div[span='Title:']/a[not(@id)] 

demo

+0

Спасибо, что работает :) – Sebachtian