没有 class 的类别文本后的 XPath select 文本

XPath select text after a category text without class

我使用 HtmlAgilityPack。 我想要(title1 和 title2 only in Title: part)或(number1 and number2 only in Number: part)。

<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());
}

但是消息框显示了所有这些(title1,title2,number1,number2)。我不知道只参加 1 部分类别。

您可以通过子 span 内容过滤父 div,例如,下面应该 return title1, title2 :

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

demo