XML 阅读 - 反序列化与 XElement.Load

XML reading - Deserialize vs XElement.Load

我的问题很简单,我应该使用哪种方法以及为什么要解析 XML 个文件?

现在我有这个功能:

 return new EdiFile
            {
                SPPLR_MAILBOX = xmlDoc.Element("SPPLR_MAILBOX").Value,
                MESSAGE_ID = xmlDoc.Element("MESSAGE_ID").Value,
                ATTRIBUTE05 = xmlDoc.Element("ATTRIBUTE05").Value,
                Levels0 = (from a in xmlDoc.Element("LEVELS0").Elements("LEVEL0")
                           select new Level0
                           {
                               PLT_NUM = a.Element("PLT_NUM").Value,
                               PLT_LABEL_ID = a.Element("PLT_LABEL_ID").Value,
                               BOX_QTY = a.Element("BOX_QTY").Value,
                               PLT_WEIGHT = a.Element("PLT_WEIGTH").Value,
                               PLT_DIMENSION = a.Element("PLT_DIMENSION").Value,
                               PLT_CHEM = a.Element("PLT_CHEM").Value,
                               PLT_NOT_STACK = a.Element("PLT_NOT_STACK").Value,
                               PLT_NOTE = a.Element("PLT_NOTE").Value,
                               ATTRIBUTE01 = a.Element("ATTRIBUTE01").Value,
                               ATTRIBUTE02 = a.Element("ATTRIBUTE02").Value,
                               ATTRIBUTE03 = a.Element("ATTRIBUTE03").Value,
                               ATTRIBUTE04 = a.Element("ATTRIBUTE04").Value,
                               ATTRIBUTE05 = a.Element("ATTRIBUTE05").Value,
                               Levels1 = (from b in a.Element("LEVELS1").Elements("LEVEL1")
                                          select new Level1
                                          {
                                              BOX_NUM = b.Element("BOX_NUM").Value,
                                              BOX_LABEL_ID = b.Element("BOX_LABEL_ID").Value,
                                              Items = (from c in b.Element("ITEMS").Elements("ITEM")
                                                       select new Item
                                                       {
                                                           SPPLR_ITEM = c.Element("SPPLR_ITEM").Value,
                                                           CUST_ITEM = c.Element("CUST_ITEM").Value,
                                                           ATTRIBUTE01 = c.Element("ATTRIBUTE01").Value,
                                                           ATTRIBUTE02 = c.Element("ATTRIBUTE02").Value,
                                                           ATTRIBUTE03 = c.Element("ATTRIBUTE03").Value,
                                                           ATTRIBUTE04 = c.Element("ATTRIBUTE04").Value,
                                                           ATTRIBUTE05 = c.Element("ATTRIBUTE05").Value,
                                                           Lots = (from d in c.Element("LOTS").Elements("LOT")
                                                                   select new Lot
                                                                   {
                                                                       LOT_NUM = d.Element("LOT_NUM").Value,
                                                                       LOT_LABEL_ID = d.Element("LOT_LABEL_ID").Value,
                                                                       LOT_NOTE = d.Element("LOT_NOTE").Value,
                                                                       LOT_EXP_DATE = d.Element("LOT_EXP_DATE").Value,
                                                                       QTY = d.Element("QTY").Value,
                                                                       UOM = d.Element("UOM").Value,
                                                                       ATTRIBUTE01 = d.Element("ATTRIBUTE01").Value,
                                                                       ATTRIBUTE02 = d.Element("ATTRIBUTE02").Value,
                                                                       ATTRIBUTE03 = d.Element("ATTRIBUTE03").Value,
                                                                       ATTRIBUTE04 = d.Element("ATTRIBUTE04").Value,
                                                                       ATTRIBUTE05 = d.Element("ATTRIBUTE05").Value
                                                                   }).ToList()
                                                       }).ToList()
                                          }).ToList()
                           }).ToList()
            };

但是我应该使用反序列化吗?我昨天学习了连载。

我真的找不到任何来源来解释我的方法,与反序列化。

有人可以给我一些见解吗?

您的方法更高效、更灵活,因为您可以控制 xml 文件的处理。序列化使用反射,性能较差。