Каков наилучший способ сериализации строки (в атрибуте XML или XML-узле) в поток XML, чтобы XML оставался действительным (специальные символы, строки перевода и т. Д. Должны быть как-то закодировано).Сериализация строки в XML в .NET.
2
A
ответ
4
Я бы просто использовать либо DOM (например, XmlDocument
или XDocument
), или для больших файлов, 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
не то, что именно то, что CDATA предназначен для использования в XML? Все, что вам нужно обратить внимание, это то, что ваши данные не содержат "]]>"
, или что вы их каким-то образом избегаете использовать технику С по времени:
Encoding:
'\' becomes '\\'
']' becomes '\]'
Decoding:
'\]' becomes ']'
'\\' becomes '\'