HtmlAgilityPack: ungültige Zeichen im Pfad

c# html-agility-pack html-parsing

Frage

Ich erhalte in diesem Code den Fehler "ungültige Zeichen im Pfad". Ich habe "Error Occuring Here" als Kommentar in der Zeile erwähnt, in der der Fehler aufgetreten ist.

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

Akzeptierte Antwort

Sie sollten die LoadHtml Methode verwenden, um eine Zeichenfolge zu LoadHtml . Load Methode lädt aus Datei

htmlDoc.LoadHtml(hotel.InnerText);   

Beliebte Antwort

Das bedeutet einfach, dass Sie versuchen, eine Datei mit einem ungültigen Zeichen im Dateipfad / -namen zu laden.

Der Fehler ist hier:

htmlDoc.Load(hotel.InnerText); 

.. weil diese Überladung den Pfad zur Datei erwartet:

public void Load(string path)

LoadHtml Sie mit LoadHtml ein HTML-Fragment:

public void LoadHtml(string html)


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum