Преобразование строки с html тегами в древовидный формат - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, есть текстовый документ в котором записан html код в одну строку. Вопрос: как перевести эту строку в древовидный вид?. Как делает вот этот сайт: www.freeformatter.com/html-formatter.html. Заранее спасибо
Листинг программы
  1. StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Новый текстовый документ0.html");
  2. string myHtmlString = sr.ReadLine();
Листинг программы
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=utf-8"/><META http-equiv="X-UA-Compatible" content="IE=edge"/><TITLE>Hello</TITLE></HEAD><BODY></BODY></HTML>

Решение задачи: «Преобразование строки с html тегами в древовидный формат»

textual
Листинг программы
  1.             int count = 0;
  2.             string s_new = "";
  3.             for (int i = 0; i < s.Length; i++)
  4.             {
  5.                 if (s[i] == '<')
  6.                 {
  7.                     if (s[i + 1] != '/')
  8.                     {
  9.                         for (int j = 0; j < count; j++)
  10.                             s_new += "   ";
  11.                         count++;
  12.                     }
  13.                     if (s[i + 1] == '/')
  14.                     {
  15.                         s_new += "\n";
  16.                         count--;
  17.                         for (int j = 0; j < count;j++)
  18.                             s_new += "   ";
  19.                        
  20.                     }
  21.                     s_new += '<';
  22.                 }
  23.                 else
  24.                 {
  25.                     s_new += s[i];
  26.                     if (s[i] == '>')
  27.                     {
  28.                         s_new += "\n";
  29.                         if (s[i - 1] == '/') count--;
  30.                     }
  31.                 }
  32.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут