Генерация HTML-страницы в приложении C # - PullRequest
1 голос
/ 06 октября 2011

Я пишу приложение на C #, которое должно генерировать HTML-страницу.Приложение C # должно определять только части HTML (например, заголовок).Основная разметка и т. Д. Является статической.

Приведу пример заголовка, в настоящее время я делаю это так.У меня есть основной HTML, сохраненный в виде TXT-файла.Вот часть:

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
        <title>Title goes here</title>
        <link rel="stylesheet" type="text/css" href="style.css" />
    </head>

Я читаю это в строку (каркас) в моем приложении C #, а затем, чтобы изменить заголовок, я делаю

oldtitle = "<title>Title goes here</title>";
newtitle = "<title>This is the title I want</title>";
wireframe = wireframe.Replace(oldtite,newtitle);

Выше простопример.каркас строки на самом деле состоит из всего HTML-кода.Мне интересно, насколько эффективен мой способ?Я не думаю, что с тех пор, чтобы изменить заголовок, я ищу всю строку.

Что может быть более эффективным способом для достижения этой цели?

Ответы [ 3 ]

4 голосов
/ 06 октября 2011

У меня была похожая задача. У меня была постоянная структура HTML, и мне нужно было вставить данные. Я определил XSLT и при получении данных я сделал XSLT-преобразование. Работало быстро.

0 голосов
/ 06 октября 2011

Я считаю, что вы можете выполнить то, что пытаетесь сделать с помощью String.Format

http://msdn.microsoft.com/en-us/library/system.string.format.aspx

Файл шаблона может выглядеть следующим образом:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <title>{0}</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>

Тогда

string input = ... // <-- read the "template" file into this string
string output = String.Format(input, newTitle);

Я считаю, что это будет более эффективно.

0 голосов
/ 06 октября 2011

Вы можете использовать метод IndexOf для поиска только один раз, например:

int index = wireframe.IndexOf(oldtitle);
wireframe = wireframe.Substring(0, index) + newtitle + wireframe.Substring(index + oldtitle.length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...