2014-06-13 116 views
0

我有一個XML轉換爲字符串如何將XML轉換爲字符串包括報關

的XML創建爲:

System.Xml.Linq.XDocument doc = new System.Xml.Linq.XDocument(new System.Xml.Linq.XDeclaration("1.0", "ISO-8859-1","")); 
System.Xml.Linq.XElement root = new System.Xml.Linq.XElement("qcs"); 
System.Xml.Linq.XElement goal_Name = new System.Xml.Linq.XElement("goal", new System.Xml.Linq.XAttribute("name","abc")); 
root.Add(goal_Name); 
doc.Add(root); 
Console.WriteLine(doc.ToString()); 

我得到的字符串爲:

<qcs> 
    <goal name="Goal15"> 
    </goal> 
</qcs> 

但跳過聲明部分即:

<?xml version="1.0" encoding="ISO-8859-1"?> 

我需要字符串作爲

<?xml version="1.0" encoding="ISO-8859-1"?> 
<qcs> 
    <goal name="Goal15"> 
    <value action="A">0.85</value> 
    <value action="B">0.87</value> 
    </goal> 

我需要在字符串中也有這個。 如何做到這一點?

+0

的重複問題的鏈接是如何在您的文章的頂部。 – Tim

+0

上面的鏈接沒有幫助。它將字符串轉換爲包含聲明的xml,但它的放置聲明爲<?xml version =「1.0」encoding =「utf-16」?>但我想要<?xml version =「1.0」encoding =「ISO-8859-1」 ?> – Silver

回答

1

XElement root = new XElement("qcs"); 
XElement goal_Name = new XElement("goal", new System.Xml.Linq.XAttribute("name", "abc")); 
root.Add(goal_Name); 

XDocument doc = new XDocument(new XDeclaration("1.0", "ISO-8859-1", string.Empty), root); 

var wr = new StringWriter(); 
doc.Save(wr); 
Console.Write(wr.GetStringBuilder().ToString()); 
Console.ReadLine(); 
+0

它可以工作,但在將其顯示聲明轉換爲字符串<?xml version =「1.0」encoding =「utf-16」?>之後,它實際上是<?xml version =「1.0」encoding =「ISO-8859- 1「?>對不起,我不得不取消你的答案.. – Silver

+0

等待讓我檢查。 –

+0

閱讀本文http://stackoverflow.com/questions/1543363/why-cant-i-set-the-xdocument-xdeclaration-encoding-type-to-iso-8859-1 –