【发布时间】:2012-01-23 12:18:32
【问题描述】:
我正在使用 Html Agility Pack 并尝试从以下 html 代码中提取链接和链接文本。该网页是从远程页面获取的,并作为一个整体保存在本地。然后从这个本地网页我试图提取链接和链接文本。该网页在其页面内自然有其他 html 代码,例如其他链接文本等,但为了清楚起见,此处将其删除。
<span class="Subject2"><a href="/some/today.nsf/0/EC8A39D274864X5BC125798B0029E305?open">
Description 1 text here</span> <span class="time">2012-01-20 08:35</span></a><br>
<span class="Subject2"><a href="/some/today.nsf/0/EC8A39XXXX264X5BC125798B0029E312?open">
Description 2 text here</span> <span class="time">2012-01-20 09:35</span></a><br>
但在尝试提取链接和链接文本时,上述内容是最独特的工作内容。
这是我希望看到的结果
<link>/some/today.nsf/0/EC8A39D274864X5BC125798B0029E305</link>
<title>Description 1 text here</title>
<pubDate>Wed, 20 Jan 2012 07:35:00 +0100</pubDate>
<link>/some/today.nsf/0/ EC8A39XXXX264X5BC125798B0029E312</link>
<title>Description 2 text here</title>
<pubDate> Wed, 20 Jan 2012 08:35:00 +0100</pubDate>
这是我目前的代码:
var linksOnPage = from lnks in document.DocumentNode.SelectNodes("//span[starts-with(@class, 'Subject2')]")
(lnks.Name == "a" &&
lnks.Attributes["href"] != null &&
lnks.InnerText.Trim().Length > 0)
select new
{
Url = lnks.Attributes["href"].Value,
Text = lnks.InnerText
Time = lnks. Attributes["time"].Value
};
foreach (var link in linksOnPage)
{
// Loop through.
Response.Write("<link>" + link.Url + "</link>");
Response.Write("<title>" + link.Text + "</title>");
Response.Write("<pubDate>" + link.Time + "</pubDate>");
}
它不工作,我什么也没得到。
因此,我们将不胜感激任何建议和帮助。
提前致谢。
更新:我现在已经设法使语法正确,以便从上述示例中选择链接:使用以下代码:
var linksOnPage = from lnks in document.DocumentNode.SelectNodes("//span[@class='Subject2']//a")
这可以很好地选择带有 url 和文本的链接,但是我该如何获取时间戳呢?
即从中选出时间戳:
<span class="time">2012-01-20 09:35</span></a>
跟随每个链接。并且根据上面的输出循环内的每个链接都有输出吗?感谢您在这方面的任何帮助。
【问题讨论】:
-
我现在已经设法得到正确的语法,以便从上述示例中选择链接:使用以下代码:var linksOnPage = from lnks in document.DocumentNode.SelectNodes("//span [@class='Subject2']//a") 这可以很好地选择带有 url 和文本的链接,但是我该如何获取时间戳呢?也就是说,从每个链接后面选择时间戳:2012-01-20 09:35。并且根据上面的输出循环内的每个链接都有输出吗?感谢您在这方面的任何帮助。
-
以后,您可以编辑问题以添加或更改信息,让人们知道问题已更改。这次我已经为您完成了,但是您可以清理您的问题以帮助鼓励人们回答:)
-
好的谢谢不知道。以后会做的。
-
@lars,您的 HTML 代码示例格式错误;见
<span><a></span><span></span></a>。 -
我知道。它是原始网页的形状,我必须忍受和处理!