C# 将XML转换为字符串

C# 将XML转换为字符串,c#,.net,silverlight-4.0,C#,.net,Silverlight 4.0,我目前正在从事一个项目,其中我以XML格式将值(“PFOID”和“Quantity”)发送到存储过程 所需的XML格式如下所示 <string> <PFOID>04676723-2afb-49ff-9fa1-0131cabb407c</PFOID> <Quantity>90</Quantity> </string> 04676723-2afb-49ff-9fa1-0131

我目前正在从事一个项目,其中我以
XML
格式将值(“PFOID”和“Quantity”)发送到存储过程

所需的XML格式如下所示

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


04676723-2afb-49ff-9fa1-0131cabb407c
90

我的代码看起来像这样

    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);
        }
    }
}
}
// 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());
内部无效更新相等性(PFO PFO)
{
字符串pfoIds=“PFO”+“PFOID”+PFO.PFOID.ToString()+”/PFOID“+”+“数量”+PFO.PlannedQty.ToString()+“/Quantity”+“/PFO”;
//pfoIds=pfoIds。替换(“,”);
//字符串pfoIds=pfo.PFOId.ToString()+pfo.PlannedQty.ToString();
//XDocument d=新XDocument(pfoIds,
//新元素
//(“PFO”,
//新XElement(“PFOID”,pfo.PFOID.ToString()),
//新XElement(“数量”,pfo.PlannedQty.ToString())
//                                   )
//                              );
List pfoIdList=新列表();
PFOID列表。添加(PFOID);
XmlSerializer serializer=新的XmlSerializer(pfoIdList.GetType());
StringBuilder xmlString=新的StringBuilder();
XmlWriterSettings=新的XmlWriterSettings();
settings.OmitXmlDeclaration=true;
settings.Encoding=新的UTF8Encoding();
XmlWriter=XmlWriter.Create(新StringWriter(xmlString),设置);
//XDocument xDoc=XDocument.Load(PFOID);
//XmlNode xNode=xmlDoc.SelectSingleNode(“PFOID”、“数量”);
//字符串onlyvalue=xNode.InnerText;
//System.Xml.Linq.XDocument xDoc=new XDocument();
////System.Xml.Linq.XNode XNode=new System.Xml.Linq.XDocument();
//XmlDocument xmlDoc=新的XmlDocument();
//xmlDoc.Load(pfoIds);
//XmlNode xNode=xmlDoc.SelectSingleNode(“PFOID”、“数量”);
//字符串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(此为EventArgs.Empty);
},空);
}
}
}
}
我尝试使用
XmlDocument
XmlNodes
,但不幸的是,silverlight system.xml程序集的库中没有这些扩展

谁能帮我解决这个问题,我真的很乐意为你效劳。多谢各位

看起来像这样。。。抱歉,我在<; <;PFOID>“04676723-2afb-49ff-9fa1-0131cabb407c<;/PFOID& gt;“<;数量>;“90<;/Quantity>;”


我不知道这对你来说是否是一个可行的解决方案,但你可以尝试做类似的事情

    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);
        }
    }
}
}
// 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());

使用
System.Data.Dataset
对象序列化为XML怎么样?我没有太多时间,但请尝试找出是否有帮助。请记住,如果这是您问题的正确答案,请将此答案标记为有效。