HtmlAgilityPack:路徑中的非法字符

c# html-agility-pack html-parsing

我在這段代碼中收到“路徑中的非法字符”錯誤。我已經提到“Error Occuring Here”作為發生錯誤的行中的註釋。

var document = htmlWeb.Load(searchUrl);
var hotels = document.DocumentNode.Descendants("div")
             .Where(x => x.Attributes.Contains("class") &&
             x.Attributes["class"].Value.Contains("listing-content"));

int count = 1;
foreach (var hotel in hotels)
{
    HtmlDocument htmlDoc = new HtmlDocument();
    htmlDoc.OptionFixNestedTags = true;
    htmlDoc.Load(hotel.InnerText);      // Error Occuring Here //
    if (htmlDoc.DocumentNode != null)
    {
        var hotelName = htmlDoc.DocumentNode.SelectNodes("//div[@class='business-container-inner']//div[@class='business-content clearfix']//div[@class='business-name-wrapper']//h3[@class='business-name fn org']//div[@class='srp-business-name']//a[0]");
        foreach (var name in hotelName)
        {
            Console.WriteLine(name.InnerHtml);
        }
    }
}

一般承認的答案

您應該使用LoadHtml方法加載字符串。 Load方法從文件加載

htmlDoc.LoadHtml(hotel.InnerText);   

熱門答案

這只是意味著您嘗試加載文件路徑/名稱中包含無效字符的文件

錯誤在這裡:

htmlDoc.Load(hotel.InnerText); 

..因為該重載需要文件的路徑:

public void Load(string path)

使用LoadHtml加載HTML片段:

public void LoadHtml(string html)


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因