【问题标题】:html agility section selectinghtml敏捷部分选择
【发布时间】:2018-05-31 18:45:32
【问题描述】:

我需要在两个部分标签之间获取 HTML,如下所示:

<section class="image-section">
//images here...
</section>

我正在使用 HTML Agility 来执行此操作,尽管这可行:

HtmlNode sec = document.DocumentNode.SelectNodes("//*[@class='image-section'")

但事实并非如此。如何获得我想要的 HTML sn-p?

【问题讨论】:

    标签: c# html tags html-agility-pack


    【解决方案1】:

    假设我们有以下html:

    <!DOCTYPE html>
    <html>
       <body>
          <h1>Test</h1>
          <section class="image-section">
             <img src="image1.jpg">
             <img src="image2.jpg">
          </section>
       </body>
    </html>
    

    这是一个代码:

    class Program
        {
            static void Main(string[] args)
            {
                var html = File.ReadAllText(@"d:/my.html");
    
                var htmlDoc = new HtmlDocument();
                htmlDoc.LoadHtml(html);
    
                HtmlNodeCollection sections = htmlDoc.DocumentNode.SelectNodes("//*[@class='image-section']");
                var section = sections.FirstOrDefault();
                if (section != null)
                {
                    foreach (var imgElement in section.Elements("img"))
                    {
                        Console.WriteLine(imgElement.OuterHtml);
                    }
                }
    
                Console.ReadKey();
            }
        }
    

    输出:

    <img src="image1.jpg">
    <img src="image2.jpg">
    

    【讨论】:

    • 这工作谢谢!这是因为我认为我使用的是 HTML 节点而不是节点集合。
    • 如何使用 section.Elements() 选择所有 标签?
    • @Bluehand 和我猜的一样。这是link。只是不要忘记关闭a 标签。
    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 2013-03-04
    • 2011-01-26
    相关资源
    最近更新 更多