Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mensiri dan Menyahseri Kamus kepada XML Tersuai Tanpa Menggunakan XElement?
Pertimbangkan senario di mana anda mempunyai Kamus
<items> <item>
Untuk mencapai pensirilan dan penyahsirilan ini tanpa menggunakan XElement:
public class Item { [XmlAttribute] public int Id; [XmlAttribute] public string Value; }
Dictionary<int, string> dict = new Dictionary<int, string>() { { 1, "one" }, { 2, "two" } };
XmlSerializer serializer = new XmlSerializer(typeof(Item[]), new XmlRootAttribute() { ElementName = "items" });
serializer.Serialize(stream, dict.Select(kv => new Item() { Id = kv.Key, Value = kv.Value }).ToArray());
var orgDict = ((Item[])serializer.Deserialize(stream)) .ToDictionary(i => i.Id, i => i.Value);
Jika anda kemudiannya memutuskan untuk menggunakan XElement, berikut ialah cara anda boleh bersiri dan deserialize:
XElement xElem = new XElement( "items", dict.Select(x => new XElement("item", new XAttribute("id", x.Key), new XAttribute("value", x.Value))) ); var xml = xElem.ToString(); //xElem.Save(...);
XElement xElem2 = XElement.Parse(xml); //XElement.Load(...) var newDict = xElem2.Descendants("item") .ToDictionary(x => (int)x.Attribute("id"), x => (string)x.Attribute("value"));
Atas ialah kandungan terperinci Bagaimana untuk Mensiri dan Menyahseri Kamus kepada XML Tersuai Tanpa Menggunakan XElement?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!