Хорошо, поэтому я получил еще одну версию этого, основываясь на приведенных выше ответах, но занимая больше вещей в учетной записи (utf-8,\n и & amp; nbsp;), а также строку, разделяющую короткие коды wordpress, прокомментированные, если они используются с wp.
function neatest_trim($content, $chars)
if (strlen($content) > $chars)
{
$content = str_replace(' ', ' ', $content);
$content = str_replace("\n", '', $content);
// use with wordpress
//$content = strip_tags(strip_shortcodes(trim($content)));
$content = strip_tags(trim($content));
$content = preg_replace('/\s+?(\S+)?$/', '', mb_substr($content, 0, $chars));
$content = trim($content) . '...';
return $content;
}
Измените
name = Console.ReadLine().ToUpper();
на
name = Console.ReadLine();
Ваш исходный код читает вводимые пользователем данные, затем изменяет их на все заглавные, прежде чем сохранять их в переменной «name».
Теперь, чтобы по-настоящему решить вашу проблему, мне нужно указать на две вещи:
1) Ваш XML <nombre>
- это прописные буквы VIVA COLOMBIA, но смешанные с Volotea. Другие <nombre>
поля имеют аналогичные проблемы.
2) Вы имеете дело с пользовательским вводом, который может довольно широко варьироваться в зависимости от того, кто печатает. Некоторые пользователи могут вводить все заглавные буквы, некоторые строчные (вы называете это крошечным).
1113 Реальное решение состоит в том, что вы должны читать все как один случай. Таким образом, это остается тем же самым как оригинал:name = Console.ReadLine().ToUpper();
Замените if (!String.IsNullOrEmpty(el.Element("nombre").Value.) && ((string)el.Element("nombre").Value.IndexOf(name) >= 0)
на это if (!String.IsNullOrEmpty(el.Element("nombre").Value.ToUpper()) && ((string)el.Element("nombre").Value.ToUpper()).IndexOf(name) >= 0)