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

时间:2014-03-25 13:59:24

标签: c# html-agility-pack

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

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

我想使用HtmlAgilityPack迭代此HTML,但我看到的每个示例都尝试将HTML加载为文档。我已经在变量htmlText中解析了我要解析的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);
    }
}

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

2 个答案:

答案 0 :(得分:3)

您可以使用LoadHtml

HtmlDocument方法

答案 1 :(得分:1)

文件只是一个名称,它不是真正的文件(或者不是必须的)。

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块。