創建給編碼我要創建具有編碼爲如何爲ISO-8859-1的XML使用LINQ
<?xml version="1.0" encoding="ISO-8859-1"?>
目前XML我使用LINQ是有標記爲
創建XML文件<?xml version="1.0" encoding="UTF-8"?>
我該如何使用LINQ來做到這一點。
創建給編碼我要創建具有編碼爲如何爲ISO-8859-1的XML使用LINQ
<?xml version="1.0" encoding="ISO-8859-1"?>
目前XML我使用LINQ是有標記爲
創建XML文件<?xml version="1.0" encoding="UTF-8"?>
我該如何使用LINQ來做到這一點。
你應該使用XDeclaration
:
var d = new XDocument(new XDeclaration("1.0", "ISO-8859-1", ""), new XElement("Root",
new XElement("Child1", "data1"),
new XElement("Child2", "data2")
));
有趣的是,這確實與'XDocument.Save(fileName)'一起工作,如果存在'XDeclaration',它必須推斷使用的編碼。 –
您可以保存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");
Linq是做查詢,而不是寫XML。所以,當你要求一個「Linq only」方法來做到這一點時,答案是:沒有辦法做到這一點。 –
@MareInfinitus:我相信這個問題是關於_LINQ到XML_的,它確實可以用來編寫XML,並且我已經相應地更改了標籤。 –