HtmlAgilityPack: caracteres ilegales en la ruta

c# html-agility-pack html-parsing

Pregunta

Recibo un error de "caracteres ilegales en la ruta" en este código. He mencionado "Error que ocurre aquí" como un comentario en la línea donde ocurre el error.

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

Respuesta aceptada

Debes usar el método LoadHtml con cargas una cadena. Load método de carga desde archivo

htmlDoc.LoadHtml(hotel.InnerText);   

Respuesta popular

Esto simplemente significa que está intentando cargar un archivo con un carácter no válido en la ruta / nombre del archivo .

El error está aquí:

htmlDoc.Load(hotel.InnerText); 

..porque esa sobrecarga espera la ruta al archivo:

public void Load(string path)

Use LoadHtml para cargar un fragmento HTML:

public void LoadHtml(string html)


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué