2009-04-21 5 views

Répondre

4

Je voudrais simplement utiliser un DOM (comme XmlDocument ou XDocument), ou pour les fichiers énormes, XmlWriter:

 XDocument xdoc = new XDocument(new XElement("xml", "a < b & c")); 
     Console.WriteLine(xdoc.ToString()); 

     XmlDocument xmldoc = new XmlDocument(); 
     XmlElement root = xmldoc.CreateElement("xml"); 
     xmldoc.AppendChild(root).InnerText = "a < b & c"; 
     Console.WriteLine(xmldoc.OuterXml); 

     StringBuilder sb = new StringBuilder(); 
     XmlWriterSettings settings = new XmlWriterSettings(); 
     settings.OmitXmlDeclaration = true; 
     using (XmlWriter xw = XmlWriter.Create(sb, settings)) 
     { 
      xw.WriteElementString("xml", "a < b & c"); 
     } 
     Console.WriteLine(sb); 
1

est-ce pas exactement ce que CDATA est destiné à être utilisé pour en XML? Tout ce que vous devez faire attention est que vos données ne contiennent pas "]]>", ou que vous leur échapper d'une manière ou d'une autre en utilisant la technique C traditionnelle:

Encoding: 
    '\' becomes '\\' 
    ']' becomes '\]' 
Decoding: 
    '\]' becomes ']' 
    '\\' becomes '\' 
Questions connexes