Знайте, что заголовок немного расплывчатый, вот пример:
<DIV>
<DIV>title1</DIV>
line1<br/>
line2<br/>
<DIV>title2</DIV>
line2.1<br/>
line2.2<br/>
</DIV>
Как я могу получить line1<br/>line2<br/>
для title1 и line2.1<br/>line2.2<br/>
для title2?Я использую HtmlAgilityPack и SharpQuery вместе.
Спасибо.
Возможное разрешение
После исследования и пробных попыток мне удалось получить их, используя LinePosition и "// div / text ()"
public static HtmlNodeCollection getNodes(string html, string xpath)
{
if (html.Length <= 0) { return null; }
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
return doc.DocumentNode.SelectNodes(xpath);
}
foreach (HtmlNode node in getNodes(html, "//div"){
foreach (HtmlNode plain_node in getNodes(html, "//div/text()")
{
if (plain_node.LinePosition <= node.LinePosition)
{
currentHtml += plain_n.InnerHtml + "<br/>";
}
}
}
Любой другой способ получше?