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)