HtmlAgilityPack: caractères illégaux dans le chemin

c# html-agility-pack html-parsing

Question

Je reçois une erreur "caractères illégaux dans le chemin" dans ce code. J'ai mentionné "Erreur survenant ici" en tant que commentaire dans la ligne où l'erreur se produit.

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);
        }
    }
}

Réponse acceptée

Vous devez utiliser la méthode LoadHtml avec charge une chaîne. Load méthode de chargement se charge depuis le fichier

htmlDoc.LoadHtml(hotel.InnerText);   

Réponse populaire

Cela signifie simplement que vous essayez de charger un fichier avec un caractère non valide dans le chemin / nom du fichier .

L'erreur est ici:

htmlDoc.Load(hotel.InnerText); 

..car cette surcharge attend le chemin du fichier:

htmlDoc.Load(hotel.InnerText); 

Utilisez LoadHtml pour charger un fragment HTML:

htmlDoc.Load(hotel.InnerText); 



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi