Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
// Извлечение tagContent между тегами openedTag1 и closedTag1
foreach (Match match in Regex.Matches(xml, openedTag1 + @"([\s\S]*?)" + closedTag1))
tagList.Add(match.Groups[1].Value);
if (tagList.Count > 0)
{
tagContent = tagList[0];
}
else
{
foreach (Match match in Regex.Matches(xml, openedTag2 + @"([\s\S]*?)" + closedTag2))
tagList.Add(match.Groups[1].Value);
if (tagList.Count > 0)
{
tagContent = tagList[0];
}
}
>> при неудачной организации вывода текста программистом сайта или неверной обработке кода браузером
Не могу сходу придумать ситуацию, когда " может появиться из-за неверной обработки кода браузером. Разве что попытаться найти браузер, который не поддерживает entities. Но какой? Mosaic 1.0? Мне почему-то кажется, что & и " были в HTML с самого начала.
Меня это тоже позабавило. Разве что этот браузер: http://govnokod.ru/25789
Но ситуацию, что бы браузер не просто выплюнул &, но еще и размножил, я представить не могу даже в героиновых фантазиях.
Кстати, раз браузеры уже сами закрывают незакрытые теги, могли бы начать угадывать, сколько раз нужно анескейпить символ, что бы получить то, что было задумано.
Всё для удобства шаблонизаторщиков.
Программисты вообще любят изучать что-то одно, и дальше своих шор никуда не выглядывать.
Ну хорошо хоть дом, а не регулярки
В том же файле использует XDocument....
{
string tagContent = "";
string openedTag1 = "<" + tagName + ">";
string closedTag1 = "</" + tagName + ">";
string openedTag2 = "<" + tagName + ">";
string closedTag2 = "</" + tagName + ">";
List<string> tagList = new List<string>();
// Извлечение tagContent между тегами openedTag1 и closedTag1
foreach (Match match in Regex.Matches(xml, openedTag1 + @"([\s\S]*?)" + closedTag1))
tagList.Add(match.Groups[1].Value);
if (tagList.Count > 0)
{
tagContent = tagList[0];
}
else
{
foreach (Match match in Regex.Matches(xml, openedTag2 + @"([\s\S]*?)" + closedTag2))
tagList.Add(match.Groups[1].Value);
if (tagList.Count > 0)
{
tagContent = tagList[0];
}
}
return tagContent;
}
но может быть и будет хакер пойман
https://www.youtube.com/watch?v=r1G-qK4AbUU&feature=youtu.be&t=448
> Серьёзно увлекаюсь компьютерами и всем что с ними связано
Не могу сходу придумать ситуацию, когда " может появиться из-за неверной обработки кода браузером. Разве что попытаться найти браузер, который не поддерживает entities. Но какой? Mosaic 1.0? Мне почему-то кажется, что & и " были в HTML с самого начала.
Но ситуацию, что бы браузер не просто выплюнул &, но еще и размножил, я представить не могу даже в героиновых фантазиях.
Я пишу аккуратно и без багов, а получается говно
Всё для удобства шаблонизаторщиков.
я не ревную тебя
amp amp amp amp
обиды нет
public static string InsertDefaultValues(string xml)
{
if (string.IsNullOrEmpty(xml))
return xml;
try
{
var doc = XDocument.Parse(xml);
foreach (var element in doc.Root.XPathSelectElements(@"//*[@DefaultValue]"))
{
try
{
if (element.Value == "")
element.Value = element.Attribute("DefaultValue").Value;
}
catch (Exception ex)
{
//writeTOAppLog(ex);
}
}
return doc.ToString(SaveOptions.DisableFormatti ng);
}
catch (Exception ex)
{
//writeTOAppLog(ex);
return xml;
}
}
регулярки, ручной парсинг, xpath, dom, нехватает стакса и сакса
питух-виртуоз!
стертор гниль