2013-02-13 148 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