代码之家  ›  专栏  ›  技术社区  ›  Kevin

使用HtmlAgilityPack解析HTML变量,而不是HTML文档?

  •  0
  • Kevin  · 技术社区  · 11 年前

    我的程序中有一个变量,它以字符串形式包含HTML数据。变量, htmlText ,包含以下内容:

    <ul><li><u>Mode selector </u></li><li><u>LAND ALT</u></li>
    

    我想使用HtmlAgilityPack遍历这个HTML,但我看到的每个示例都试图将HTML作为文档加载。我已经有了要在变量中解析的HTML html文本 。有人能告诉我如何解析它,而不将其作为文档加载吗?

    我现在看到的示例如下:

    static void Main(string[] args)
    {
        var web = new HtmlWeb();
        var doc = web.Load("http://www.stackoverflow.com");
    
        var nodes = doc.DocumentNode.SelectNodes("//a[@href]");
    
        foreach (var node in nodes)
        {
                Console.WriteLine(node.InnerHtml);
        }
    }
    

    我想将其转换为使用 html文本 找到所有 underline 元素。我只是不想将其作为文档加载,因为我已经将要解析的HTML存储在变量中。

    2 回复  |  直到 11 年前
        1
  •  3
  •   Yuriy Rozhovetskiy    11 年前

    您可以使用 LoadHtml 方法 HtmlDocument

        2
  •  1
  •   Steve Pettifer    11 年前

    文档只是一个名称,它实际上不是一个文档(或者不一定是)。

    var doc = New HtmlAgilityPack.HtmlDocument;
    string myHTML = "<ul><li><u>Mode selector </u></li><li><u>LAND ALT</u></li>";
    doc.LoadHtml(myHTML);
    foreach (var node in doc.DocumentNode.SelectNodes("//a[@href]")) {
        Console.WriteLine(node.InnerHtml);
    
    }
    

    我使用了完全相同的方法来解析变量中的html块。