Как дать кодировку в виде ISO-8859-1 в XML, созданный с помощью LINQ
Я должен создать XML-файл, который имеет кодировку
<?xml version="1.0" encoding="ISO-8859-1"?>
В настоящее время XML, который я создаю с помощью LINQ, имеет тег как
<?xml version="1.0" encoding="UTF-8"?>
Как я могу сделать это, используя только LINQ.
3 ответа
Решение
Вы должны использовать XDeclaration
:
var d = new XDocument(new XDeclaration("1.0", "ISO-8859-1", ""), new XElement("Root",
new XElement("Child1", "data1"),
new XElement("Child2", "data2")
));
Вы можете сохранить XDocument
к StreamWriter
имея желаемую кодировку:
var xDocument = new XDocument(new XElement("root"));
var encoding = Encoding.GetEncoding("iso-8859-1");
using (var fileStream = File.Create("... file name ..."))
using (var streamWriter = new StreamWriter(fileStream, encoding))
xDocument.Save(streamWriter);
Если вы используете XMLDcoument, вы можете сделать это, как показано ниже:
XmlDocument doc = new XmlDocument();
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "ISO-8859-1", null);
doc.AppendChild(declaration);
var node = doc.CreateNode(XmlNodeType.Element, "Root", "");
doc.AppendChild(node);
doc.Save("TestDoc.xml");