Я перешел к представлению поблочного тестирования в FoxForward 2007 и не был сказан никогда модульному тесту ничего, что работает с данными. В конце концов, если Вы тестируете на живых данных, результаты непредсказуемы, и если Вы не тестируете на живых данных, Вы на самом деле не тестируете код, который Вы записали. К сожалению, это - большая часть кодирования, которое я делаю в эти дни.:-)
я действительно взял выстрел в TDD недавно, когда я писал стандартную программу, чтобы сохранить и восстановить настройки. Во-первых, я проверил, что мог создать объект хранения. Затем то, что это имело метод, который я должен был назвать. Затем то, что я мог назвать его. Затем то, что я мог передать его параметры. Затем то, что я мог передать его определенные параметры. И так далее, пока я наконец не проверял, что это сохранит указанную настройку, позволит мне изменять его, и затем восстанавливать его, для нескольких различных синтаксисов.
я не добирался до конца, потому что я needed-the-routine-now-dammit, но это было хорошее осуществление.
решение в ссылке, которую Расик отправил сюда , это решение и для вас
Regex.Replace(html, @"\s*(<[^>]+>)\s*", "$1", RegexOptions.Singleline);
Обычный берите разметку как есть и символы пробела и меняйте ее с разметкой.
Редактировать: Лучшее решение, которое работает для примера Micheal
Regex.Replace(txtSource.Text,
@"\s*(?<capture><(?<markUp>\w+)>.*<\/\k<markUp>>)\s*", "${capture}", RegexOptions.Singleline);
: это регулярное выражение обнаружит теги разметки и не изменит их содержимое, а также удалит пробелы снаружи. Есть и другие случаи, на которые стоит обратить внимание. Как разметка без конечных тегов.
С технической точки зрения все пробелы являются частью некоторого элемента HTML. Самый верхний элемент, то есть документ, «владеет» пространствами между отдельными узлами
в вашем примере, например.
Итак, я думаю, вы спрашиваете, можете ли вы удалить пространство между узлами на одном уровне . В этом случае вам нужно будет отслеживать уровень вложенности элемента и предыдущий элемент. Например, последовательность элементов Вы можете попытаться использовать регулярное выражение для удаления пробелов. Однако выражение должно быть довольно сложным, чтобы различать открывающие и закрывающие теги и обрабатывать вложенные теги. Вместо этого вы можете проанализировать ввод HTML с помощью библиотеки, такой как Html Agility Pack , а затем перестроить строку HTML из модели документа. Это не только удалит лишние пробелы, но и проверит HTML (даже автоматически исправит типичные ошибки). У меня возникло бы искушение использовать регулярное выражение для сопоставления любого пробела между конечным тегом и следующим начальным тегом. Сопоставление с образцом регулярных выражений избавит вас от необходимости писать логику самостоятельно. Я не уверен, какой язык программирования вы используете. Но вы можете сделать следующее в C # , используя Regular Expression . Кроме того, это может помочь изучить другой поток stackoverflow.
, которые встречаются внутри одного и того же элемента
, в котором вы можете определить конец одного
и начало следующего элемента
и игнорировать все пробелы между ними.
public static string TrimSpaces(string str)
{
return System.Text.RegularExpressions.Regex.Replace(str, @"^\s+", string.Empty);
}
Похожие вопросы: