РЕДАКТИРОВАТЬ: вы говорите: «Я объединяю простой и короткий XML-файл, и я не использую сериализацию, поэтому мне нужно явно вручную экранировать символ XML».
Я настоятельно не рекомендую делать это вручную. Используйте XML API, чтобы сделать все за вас - прочтите исходные файлы, объедините их в один документ, но вам это нужно (вы, вероятно, захотите использоватьXmlDocument.ImportNode
), а затем снова запишите его. Вы не хотите писать свои собственные анализаторы / средства форматирования XML. Сериализация здесь несколько неактуальна.
Если вы дадите нам краткий, но полный пример того, что именно вы пытаетесь сделать, мы, вероятно, сможем помочь вам вообще не беспокоиться о побеге.
Оригинальный ответ
Не совсем понятно, что вы имеете в виду, но обычно XML API делают это за вас. Вы устанавливаете текст в узле, и он автоматически избегает всего, что ему нужно. Например:
Пример 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. Если нет, опубликуйте подробности.