ArrayIndexOutOfBoundsException само имя объясняет, что если вы пытаетесь получить доступ к значению в индексе, который выходит за рамки размера массива, возникает такое исключение.
В вашем случае вы можете просто удалить знак равенства из цикла for.
for(int i = 0; i<name.length; i++)
Лучшим вариантом является итерация массива:
for(String i : name )
System.out.println(i);
У меня был успех с этим:
string url = "https://www.eobuwie.com.pl/damskie.html";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);
var sidebar = doc.DocumentNode.SelectSingleNode("//ul[@class='sidebar-section__wrapper sidebar-section__wrapper--categories']");
var categories = sidebar.SelectNodes("li");
foreach (var category in categories)
{
var anchor = category.SelectSingleNode("a");
string shoeCategory = anchor.InnerText.Trim();
Console.WriteLine(shoeCategory);
}
Это немного отличается от того, как вы это делаете, но я, по крайней мере, надеюсь, что вы сможете принять некоторые намеки на это и применить его к вашему собственному коду.
Если вам нужны ссылки, добавьте это:
string shoeCategoryLink = anchor.GetAttributeValue("href", string.Empty);
GetCategoriesofCategories()
измените петлюforeach
, чтобы отобразитьinnerHtml
вli
. Является ли html все равно? – Lucax 13 July 2018 в 15:29