2013-02-13 145 views
0

我目前正在開發一個項目,該項目已將值(「PFOID」和「數量」)以XML格式發送到存儲過程。將XML轉換爲字符串

所需的XML格式是這樣的

<string> 
      <PFOID>04676723-2afb-49ff-9fa1-0131cabb407c</PFOID> 
      <Quantity>90</Quantity> 
</string> 

我的代碼看起來是這樣的。

internal void UpdateQuantity(PFO pfo) 
    { 

     string pfoIds = "&lt;PFO&gt;" + "&lt;PFOID&gt;" + pfo.PFOId.ToString() + "&lt;/PFOID&gt;" + " " + "&lt;Quantity&gt;" + pfo.PlannedQty.ToString() + "&lt;/Quantity&gt;" + "&lt;/PFO&gt;"; 

     //pfoIds = pfoIds.Replace("&lt;","<").Replace("&gt;",">"); 

     // string pfoIds = pfo.PFOId.ToString() + pfo.PlannedQty.ToString(); 
     //XDocument d = new XDocument(pfoIds, 
     //        new XElement 
     //         ("PFO", 
     //          new XElement("PFOID", pfo.PFOId.ToString()), 
     //          new XElement("Quantity", pfo.PlannedQty.ToString()) 
     //         ) 
     //        ); 

     List<string> pfoIdList = new List<string>(); 
     pfoIdList.Add(pfoIds); 
     XmlSerializer serializer = new XmlSerializer(pfoIdList.GetType()); 

     StringBuilder xmlString = new StringBuilder(); 
     XmlWriterSettings settings = new XmlWriterSettings(); 
     settings.OmitXmlDeclaration = true; 
     settings.Encoding = new UTF8Encoding(); 
     XmlWriter writer = XmlWriter.Create(new StringWriter(xmlString), settings); 

     //XDocument xDoc = XDocument.Load(pfoIds); 
     //XmlNode xNode = xmlDoc.SelectSingleNode("PFOID", "Quantity"); 
     //string onlyvalue = xNode.InnerText; 


     //System.Xml.Linq.XDocument xDoc = new XDocument(); 
     ////System.Xml.Linq.XNode xNode =new System.Xml.Linq.XDocument(); 

     //XmlDocument xmlDoc = new XmlDocument(); 
     //xmlDoc.Load(pfoIds); 

     //XmlNode xNode = xmlDoc.SelectSingleNode("PFOID", "Quantity"); 
     //string onlyvalue = xNode.InnerText; 


     //serializer.WriteObject(writer, SelectedStoreIds.ToArray()); 
     serializer.Serialize(writer, pfoIdList); 

     if (writer != null) 
      writer.Close(); 

     xmlString.ToString(); 

     {    
      Context.PFOValidateUpdateData(xmlString.ToString(), WebContext.Current.User.UserID, op => 
       { 
        IsProcessing = false; 
        if (ValidateUpdateCompleted != null) 
         ValidateUpdateCompleted(this, EventArgs.Empty); 
       }, null); 
     } 
    } 
} 
} 

我嘗試使用XmlDocumentXmlNodes但不幸的Silverlight的System.Xml裝配不必須在其庫這些擴展。

任何人都可以幫助我這個請,我真的會很滿意你。非常感謝你。

看起來像這樣......對不起,我在& lt之間使用了空格; & lt; PFOID >「04676723-2afb-49ff-9fa1-0131cabb407c & lt;/PFOID & gt;」 & lt;數量& gt;「90 & lt; /數量& gt;」

+0

如何使用System.Data.Dataset對象序列化爲XML? – HuorSwords 2013-02-13 22:17:26

+0

我沒有太多時間,但請嘗試弄清楚[this](http://stackoverflow.com/questions/9717042/custom-net-xml-dictionary-key-value-serialization)是否可以提供幫助。 – 2013-02-13 22:18:23

回答

1

我不知道這是否是一個可能的解決方案,但你可以嘗試做這樣的事情。

// Create a DataSet with one table containing two columns. 
DataSet dataSet = new DataSet("dataSet"); 
DataTable table = dataSet.Tables.Add("string"); 

table.Columns.Add("PFOID", typeof(string)); 
table.Columns.Add("Quantity", typeof(value)); 

DataRow row; 

row = table.NewRow(); 
row["PFOID"]= "04676723-2afb-49ff-9fa1-0131cabb407c"; 
row["Quantity"]= 90; 

table.Rows.Add(row); 

// Display the DataSet contents as XML. 
Console.WriteLine(dataSet.GetXml()); 
+0

我會嘗試它..非常感謝。 – Karthik 2013-02-13 23:16:16

+0

請記住標記此答案爲有效的,如果它是您的問題的正確答案。 – HuorSwords 2013-02-14 13:28:12