如何提取html标签属性
本文关键字:html 标签 属性 提取 何提取 | 更新日期: 2023-09-27 18:01:36
我正在尝试开发我的第一个RSS新闻聚合器。我可以很容易地从RSSItem对象中提取链接、标题、出版日期。然而,我很难从feed Item中提取图像。不幸的是,由于我的声誉很低,我不能上传图像,所以不要帮我提取<img>
的src属性的值,你能告诉我如何获得<a>
标签的href属性的值吗?高度appreaciated ! !
这是字符串
<div style="text-align: center;"
<a href="http://www.engadget.com/2011/07/10/element5s-mini-l-solarbag-brings-eco-friendly-energy-protectio/"></a>
</div>
编辑:
也许整个标题都错了。是否有一种方法可以使用XPath找到该值?
使用htmllagilitypack作为本文的答案:
如何从Html标签中获取值?
更多信息:
Html可能格式不太好,因此我们需要另一个容错能力更强的解析器(除了。net中提供的XML解析器)。这就是HTMLAgilityPack的由来。
开始:
-
创建一个新的控制台应用程序
-
右键单击参考/管理nuget包(如果你没有nuget,安装nuget)
-
添加html敏捷性
工作示例:
using System;
using System.IO;
using System.Text;
using HtmlAgilityPack;
namespace ConsoleApplication4
{
class Program
{
private const string html =
@"<?xml version=""1.0"" encoding=""ISO-8859-1""?>
<div class='linkProduct' id='link' anattribute='abc'/>
<bookstore>
<book>
<title lang=""eng"">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang=""eng"">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
";
static void Main(string[] args)
{
HtmlDocument doc = new HtmlDocument();
byte[] byteArray = Encoding.ASCII.GetBytes(html); MemoryStream stream = new MemoryStream(byteArray);
var ts = new MemoryStream(byteArray);
doc.Load(ts);
var root = doc.DocumentNode;
var tag = root.SelectSingleNode("/div");
var attrib = tag.Attributes["anattribute"];
Console.WriteLine(attrib.Value);
}
}
}
更进一步:
精通xpath。这是一个很好的开始。
http://www.w3schools.com/xpath/xpath_syntax.asp