EDIT: Vous dites "Je concatène un fichier XML simple et court et je n'utilise pas de sérialisation, donc j'ai besoin d'échapper explicitement au caractère XML à la main".
Je vous déconseille fortement de le faire à la main. Utilisez les API XML pour tout faire pour vous - lisez les fichiers d'origine, fusionnez les deux en un seul document comme vous en avez besoin (vous voulez probablement l'utiliser XmlDocument.ImportNode
), puis réécrivez-le. Vous ne voulez pas écrire vos propres analyseurs / formateurs XML. La sérialisation est quelque peu hors de propos ici.
Si vous pouvez nous donner un exemple bref mais complet de ce que vous essayez de faire exactement, nous pouvons probablement vous aider à éviter d'avoir à vous soucier de vous échapper en premier lieu.
Réponse originale
Ce que vous voulez dire n'est pas tout à fait clair, mais normalement les API XML le font pour vous. Vous définissez le texte dans un nœud, et il échappera automatiquement à tout ce dont il a besoin. Par exemple:
Exemple LINQ to XML:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
XElement element = new XElement("tag",
"Brackets & stuff <>");
Console.WriteLine(element);
}
}
Exemple 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);
}
}
Résultat des deux exemples:
<tag>Brackets & stuff <></tag>
Cela suppose que vous vouliez que XML s'échappe, bien sûr. Si ce n'est pas le cas, veuillez publier plus de détails.