4

Нужно генерировать простенькую страничку, в которой будет меняться заголовок, немного текста и добавляться, убавляться элементы списка. Как делать в html-знаю, но в c# пытаюсь записать такую инфу в файл, определяя кавычки слешами - документ записывается в файл правильно, и в блокноте все теги, закрывающие открывающие и кавычки на месте, но браузер не видит в этом тексте разметку. Может дело в том, что кавычки при обрамлении их слешем не такие как нужно встают?

UPD: проблема была возможно вызвана тем, что html код html в с# visual studio при вставке получает лишние пробелы между спецсимволами (<>), и я считаю что это требует обсуждения и внимания а не является банальной опечаткой.

Файл html который получается

 string content2 = System.String.Format(
            "<html>" +
            "<head>" +
            "<title> Документы {0} {1}</title>" +
            "< link href =\"../../favicon.ico\" rel=\"icon\" type=\"image/x icon\" />"+
            "< link href =\"../../favicon.ico\" rel=\"shortcut icon\" 
type=\"image/x-icon\" />"+
            "< link rel =\"stylesheet\" href=\"../../css.css\" 
type=\"text/css\" />"+
            "</head>" +
            "<body>" +
            "{0} {1}" +
            "</body>" +
            "</html>", date, textBox_title.Text);

        #endregion

        File.WriteAllText("index.html", content2);
  • Что значит браузер не видит в этом тексте разметку? – Андрей NOP Jul 31 '17 at 05:36
  • 1
    Удалите пробелы: <link, тогда нормально открывается – Андрей NOP Jul 31 '17 at 05:38
  • @Андрей значит что браузер открывает это как текст, не преобразую в команды гипертекста – elislavkat Jul 31 '17 at 05:39
  • @Андрей да чтоб меня... копировал же с первоисточника без пробелов! – elislavkat Jul 31 '17 at 05:40
  • html код html в с# visual studio при вставке получает лишние пробелы между спецсимволами — багрепорт им отправьте. – aleksandr barakin Aug 01 '17 at 10:58
  • Когда копируете (вставляете) в IDE, сперва напишите две кавычки: "", поставьте курсор между ними, потом жмите Ctrl+V. Тогда IDE не будет пытаться отформатировать вставленное. – Alexander Petrov Aug 01 '17 at 19:32
  • Как вариант, если после вставки содержимое было отформатировано (добавлены пробелы и т. п.), достаточно сразу же нажать Ctrl+Z (один раз!) - форматирование будет отменено. – Alexander Petrov Aug 01 '17 at 19:34

2 Answers2

5

В соответствии со спецификацией HTML п. 12.1.2.1 первый символ открывающего тега - символ <, а следующие символы должны представлять имя тега.

Таким образом, пробел после < делает HTML невалидным, и, поэтому, он не воспринимается браузером. Следует удалить пробелы, например:

<link href = ...
1

На мой взгляд, лучше использовать какой-нибудь HTML парсер, который позволяет работать c HTML подобно XDocument.

iluxa1810
  • 24,899