0

Имеется код html страницы, в котором есть такие теги как "span itemprop=\"name\">" Я без труда нахожу значение, но проблема в том, что находит значение самого первого тега. Как сделать, что б все "span itemprop=\"name\">" проиндексировать, и получать нужное значение через индекс?

  • Хотите я сразу помечу это как дубликат, закроем и забудем про этот вопрос, сойдет? Не хотите, то давайте сразу сообществу больше данных, чем парсите HTML, ваши попытки, тогда мы начнем искать проблему в вашем коде. Сейчас этот вопрос я лично расцениваю как как распарсить html. – EvgeniyZ Dec 10 '18 at 18:26
  • загружаю html string response = webClient.DownloadString(url); string s = response; string r = pr.searchOtDO(s, "span itemprop="name">", '<');// нахожу функцией поиска в файле тег - читаю его до символа, что в середине - идет в r. Но как мне сделать чтобы следующий тег взял? – Simple code Dec 10 '18 at 18:30
  • Иии... У вас получается string с неким текстом, дальше действия? Вот вы пишите Я без труда нахожу значение - как вы это делаете? – EvgeniyZ Dec 10 '18 at 18:31
  • те считываю значение самого первого тега, но как узнать значение 2го 3го и так далее? – Simple code Dec 10 '18 at 18:33
  • что такое searchOtDO? От куда он у вас? Вы используете что то для обработки html? – EvgeniyZ Dec 10 '18 at 18:34
  • функция поиска public string searchOtDO(string data,string start,char finish) { string zapros = start; int zlen = zapros.Length; string result = data.Substring(data.IndexOf(zapros, 0)); string secondr = result.Remove(0, zlen); string firstr = secondr.Split(finish)[0]; return firstr; } – Simple code Dec 10 '18 at 18:35
  • Понятно, Substring, вот это я от вас и ожидал с самого начала. Почему вы не используете предназначенные для этого парсеры? К примеру HtmlAgilityPack - весь ваш код тогда будет в 2-3 строки. – EvgeniyZ Dec 10 '18 at 18:36
  • Изобретаю велосипед... – Simple code Dec 10 '18 at 18:39
  • Вот этого я вам очень не советую делать, не работайте с HTML как с текстом, это к в корне не верно! На крайний случай - регулярки (и то бред). Посмотрите мое первое сообщение, там ссылка, по ней найдете несколько способов работы с HTML, выберите подходящий и попробуйте сделать через него. Например через HtmlAgilityPack решить вашу задачу можно одним запросом var nodes = hap.DocumentNode.SelectNodes("//span[@itemprop='name']"); (предварительно загрузив данные) это конечно если имя известно, если нет, то чуть по другому, но не суть, главное не работайте с HTML как с текстом!! – EvgeniyZ Dec 10 '18 at 18:44
  • Благодарю! Вы меня очень выручили! – Simple code Dec 10 '18 at 18:52
  • Давайте тогда закроем дубликатом. – EvgeniyZ Dec 10 '18 at 18:52
  • 1
    Возможный дубликат вопроса: Как распарсить HTML в .NET? – EvgeniyZ Dec 10 '18 at 18:52

0 Answers0