EDIT: dici "Sto concatenando file XML semplici e brevi e non uso la serializzazione, quindi ho bisogno di sfuggire esplicitamente al carattere XML a mano".
Ti consiglio vivamente di non farlo a mano. Usa le API XML per fare tutto per te: leggi i file originali, unisci i due in un unico documento come ti serve (probabilmente vorrai usare XmlDocument.ImportNode
), quindi riscrivilo di nuovo. Non vuoi scrivere i tuoi parser / formattatori XML. La serializzazione è in qualche modo irrilevante qui.
Se puoi darci un esempio breve ma completo di quello che stai cercando di fare, probabilmente possiamo aiutarti a evitare di doverti preoccupare di scappare in primo luogo.
Risposta originale
Non è del tutto chiaro cosa intendi, ma normalmente le API XML lo fanno per te. Si imposta il testo in un nodo e verrà automaticamente sfuggito a tutto ciò di cui ha bisogno. Per esempio:
Esempio di LINQ to XML:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
XElement element = new XElement("tag",
"Brackets & stuff <>");
Console.WriteLine(element);
}
}
Esempio 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);
}
}
Risultato da entrambi gli esempi:
<tag>Brackets & stuff <></tag>
Questo presuppone che tu voglia l'escape XML, ovviamente. Se non lo sei, inserisci maggiori dettagli.