#c# #asp.net
Вопрос:
Я пытаюсь просмотреть HTML-страницу и заменить каждый пронумерованный идентификатор кампании и добавить тег div с номером и z-индексом, чтобы выделить каждую ссылку. Оператор for заменяет каждый тег div следующим идентификатором кампании 1-10, но он распечатывает 10 одинаковых HTML-страниц, на каждой из которых заменен следующий пронумерованный идентификатор кампании и тег div. Мне просто нужна одна страница с каждой «href», пронумерованной на странице. Что мне нужно изменить в этом коде, чтобы это произошло? Я бы поместил вывод, чтобы вы могли его увидеть, но это слишком много HTML-кода.
using (SqlConnection connection =
new SqlConnection(con))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string CampaignId = reader["CampaignId"].ToString();
string htmlCreate= reader["ConvertedCreative"].ToString();
StringBuilder strContents = new StringBuilder();
for(int i = 1; i <= 10; i )
{
string replacement = "<div style="z-indexer:1;background:#0c538e;width:2.25em;height:2.25em;text-align:center;color:white;">" i "</div><a href="http://www.trackingstats.info/Process.aspx.c=/" CampaignId "amp;l=" i """;
Regex regex = new Regex("<a href="http://www.trackingstats.info/Process.aspx.c=24896amp;l=" i """, RegexOptions.IgnoreCase);
string result = regex.Replace(htmlCreate, replacement);
strContents.AppendLine(result);
}
Label1.Text = strContents.ToString();
}
}
Ответ №1:
Если я правильно понимаю вашу проблему, похоже, вам нужно переместить строку strContents.AppendLine(result);
за пределы цикла for. Вы добавляете текст результата в StringBuilder каждый раз через цикл, что будет равно 10 раз.
На самом деле, если вы не хотите дублировать его 10 раз, вам не нужен конструктор строк.
Может быть, что-то вроде этого?
for(int i = 1; i <= 10; i )
{
string replacement = "<div style="z-indexer:1;background:#0c538e;width:2.25em;height:2.25em;text-align:center;color:white;">" i "</div><a href="http://www.trackingstats.info/Process.aspx.c=/" CampaignId "amp;l=" i """;
Regex regex = new Regex("<a href="http://www.trackingstats.info/Process.aspx.c=24896amp;l=" i """, RegexOptions.IgnoreCase);
htmlCreate = regex.Replace(htmlCreate, replacement);
}
Label1.Text = htmlCreate;