1
我试图解析以下HTML解析不正确HTML:与HtmlAgilityPack
<li>
<b style="font-size: 11px;">News:</b>
<ul>
<li><a style="font-size: 11px;" title="Program 1">program1</a></li>
<li><a style="font-size: 11px;" title="Program 2">program2</a></li>
<li><a style="font-size: 11px;" title="Program 3">program3</a></li>
</ul>
</li>
<li>
<b style="font-size: 11px;">Cartoons:</b>
<ul>
<li><a style="font-size: 11px;" title="Program 4">program4</a></li>
<li><a style="font-size: 11px;" title="Program 5">program5</a></li>
<li><a style="font-size: 11px;" title="Program 6">program6</a></li>
</ul>
</li>
<li>
<b style="font-size: 11px;">Music:</b>
<ul>
<li><a style="font-size: 11px;" title="Program 7">program7</a></li>
<li><a style="font-size: 11px;" title="Program 8">program8</a></li>
<li><a style="font-size: 11px;" title="Program 9">program9</a></li>
</ul>
</li>
我想要得到的是程序(内文)和程序的名称(内部文本)的类型。
我希望把他们在下面的对象结果:
public class Programs
{
public string Name { get; set; }
public string Category { get; set; }
}
这是我当前的代码:
var content = from li in document.DocumentNode.Descendants("li")
from b in li.Descendants("b")
from a in li.Descendants("a")
where a.Attributes["title"] != null && a.Attributes["title"].Value.StartsWith("Program")
select new Channel
{
Name = a.InnerText,
Category = b.InnerText
};
foreach (Programs c in content)
{
string s = c.Name;
string ss = c.Category;
}
但每个程序我只得到了“新闻”的范畴。
我应该怎么做才能得到正确的类别? (新闻 - 节目1,节目2,节目3,漫画 - 节目4,节目5,节目6 ...)。
嗯,调查一下我看到,我得到所有程序与新闻类别,然后所有程序与纸箱类别,然后再次所有程序与音乐类别...奇怪 – Kobe