parse htmldocument htmlagilitypack agility c# html-parsing html-agility-pack

c# - htmldocument - HtmlAgilityPack: caracteres ilegales en la ruta



htmlagilitypack xpath (2)

Recibo un error de "caracteres ilegales en la ruta" en este código. He mencionado "Error que se produce aquí" como un comentario en la línea donde se produce 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); } } }


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

htmlDoc.LoadHtml(hotel.InnerText);


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)