如何提取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找到该值?

如何提取html标签属性

使用htmllagilitypack作为本文的答案:

如何从Html标签中获取值?

更多信息:

Html可能格式不太好,因此我们需要另一个容错能力更强的解析器(除了。net中提供的XML解析器)。这就是HTMLAgilityPack的由来。

开始:

  1. 创建一个新的控制台应用程序

  2. 右键单击参考/管理nuget包(如果你没有nuget,安装nuget)

  3. 添加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