Нужна помощь в манипулировании строкой в C#?
У меня есть очень большая строка, которую я пытаюсь преобразовать из старого стандарта в стандарт marc21 xml.
Следующая строка кода:
temp1 = inputString.Replace("<marc:controlfield tag=\"LDR\">", "<marc:leader>");
Производит следующее:
<marc:leader>^^^^^nam^a22^^^^^3a^4500</marc:controlfield>
Проблема вполне очевидна.
Я выполняю общее преобразование определенного термина и заменяю его на "marc:controlfield". К концу моего процесса преобразования я начинаю обрабатывать элемент лидера. Вот где я сейчас. Знающий об XML знает, что:
</marc:controlfield>
должно быть:
</marc:leader>
Как только это будет сделано, моя строка может быть проверена на правильность и корректность и т. Д. Я пытаюсь найти закрывающие скобки для элемента-лидера и заменить его на xml, как показано выше.
Первоначально элемент Leader выглядит так:
<fixfield id="LDR">^^^^^nam^a22^^^^^3a^4500</fixfield>
Любая помощь с благодарностью.
2 ответа
Используйте Regex:
strResult = Regex.Replace(inputString,
"<marc:controlfield tag=\"LDR\">([^<]*)</marc:controlfield>",
"<marc:leader>$1</marc:leader>");
Объясняю:
[^<]*
means any character except: '<'
(0 or more times, matching the most amount possible)
Может я просто не правильно тебя понимаю, но почему бы не бежать
temp1 = temp1 .Replace("</marc:controlfield>", "</marc:leader>");
после вашей первой конверсии работа для вас?