РЕДАКТИРОВАТЬ: Вы говорите: «Я конкатенирую простой и короткий файл XML, и я не использую сериализацию, поэтому мне нужно явно экранировать символ XML вручную».
Я бы настоятельно посоветовал бы вам не делать это вручную. Используйте API-интерфейсы XML, чтобы сделать все это за вас - прочитайте исходные файлы, объедините их в один документ, как вам нужно (вы, вероятно, хотите использовать XmlDocument.ImportNode
), а затем запишите его снова. Вы не хотите писать свои собственные парсеры / форматеры XML. Сериализация здесь несколько неактуальна.
Если вы можете дать нам краткий, но полный пример того, что именно вы пытаетесь сделать, мы, вероятно, поможем вам избежать беспокойства о побеге.
Оригинальный ответ
Не совсем понятно, что вы имеете в виду, но обычно API-интерфейсы XML делают это за вас. Вы устанавливаете текст в узле, и он автоматически экранирует все, что ему нужно. Например:
Пример LINQ to XML:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
XElement element = new XElement("tag",
"Brackets & stuff <>");
Console.WriteLine(element);
}
}
Пример DOM:
using System;
using System.Xml;
class Test
{
static void Main()
{
XmlDocument doc = new XmlDocument();
XmlElement element = doc.CreateElement("tag");
element.InnerText = "Brackets & stuff <>";
Console.WriteLine(element.OuterXml);
}
}
Вывод из обоих примеров:
<tag>Brackets & stuff <></tag>
Это, конечно, при условии, что вы хотите экранировать XML. Если нет, пожалуйста, опишите подробнее.