将XML转换为字符串
我目前正在开发一个项目,该项目已将值(“PFOID”和“数量”)以XML
格式发送到存储过程。将XML转换为字符串
所需的XML格式是这样的
<string>
<PFOID>04676723-2afb-49ff-9fa1-0131cabb407c</PFOID>
<Quantity>90</Quantity>
</string>
我的代码看起来是这样的。
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);
}
}
}
}
我尝试使用XmlDocument
和XmlNodes
但不幸的Silverlight的System.Xml装配不必须在其库这些扩展。
任何人都可以帮助我这个请,我真的会很满意你。非常感谢你。
看起来像这样......对不起,我在& lt之间使用了空格; & lt; PFOID >“04676723-2afb-49ff-9fa1-0131cabb407c & lt;/PFOID & gt;” & lt;数量& gt;“90 & lt; /数量& gt;”
我不知道这是否是一个可能的解决方案,但你可以尝试做这样的事情。
// 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());
我会尝试它..非常感谢。 – Karthik 2013-02-13 23:16:16
请记住标记此答案为有效的,如果它是您的问题的正确答案。 – HuorSwords 2013-02-14 13:28:12
如何使用System.Data.Dataset对象序列化为XML? – HuorSwords 2013-02-13 22:17:26
我没有太多时间,但请尝试弄清楚[this](http://stackoverflow.com/questions/9717042/custom-net-xml-dictionary-key-value-serialization)是否可以提供帮助。 – 2013-02-13 22:18:23