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 = "<PFO>" + "<PFOID>" + pfo.PFOId.ToString() + "</PFOID>" + " " + "<Quantity>" + pfo.PlannedQty.ToString() + "</Quantity>" + "</PFO>";
//pfoIds = pfoIds.Replace("<","<").Replace(">",">");
// 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 = "<PFO>" + "<PFOID>" + pfo.PFOId.ToString() + "</PFOID>" + " " + "<Quantity>" + pfo.PlannedQty.ToString() + "</Quantity>" + "</PFO>";
//pfoIds = pfoIds.Replace("<","<").Replace(">",">");
// 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怎么样?我没有太多时间,但请尝试找出是否有帮助。请记住,如果这是您问题的正确答案,请将此答案标记为有效。