Пример #1
0
        /// <summary>
        /// 转换成Xml
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static string ToXml(CouponsInfoItem model)
        {
            //TODO:转换成xml结构的算法
            //创建一个xml对象
            XmlDocument xmlDoc = new XmlDocument();
            //创建开头
            XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);

            xmlDoc.AppendChild(dec);
            //创建根节点
            XmlElement root = xmlDoc.CreateElement("Print");

            foreach (PrintItem pItem in model.TemplateItem)
            {
                XmlElement FirNode;
                if (pItem.IsImage)
                {
                    FirNode           = xmlDoc.CreateElement("Pic");
                    FirNode.InnerText = pItem.ImagePath;
                    FirNode.SetAttribute("height", pItem.ImageHeight.ToString());
                    FirNode.SetAttribute("width", pItem.ImageWidth.ToString());
                }
                else
                {
                    FirNode           = xmlDoc.CreateElement("Content");
                    FirNode.InnerText = pItem.TextInfo;
                    FirNode.SetAttribute("font", "宋体");
                    FirNode.SetAttribute("bold", pItem.IsBold ? "Y" : "N");
                    FirNode.SetAttribute("italic", pItem.IsItalic ? "Y" : "N");
                    FirNode.SetAttribute("size", pItem.FontSize.ToString());
                }
                root.AppendChild(FirNode);
            }
            //添加根节点
            xmlDoc.AppendChild(root);
            return(xmlDoc.OuterXml);
        }
Пример #2
0
        /// <summary>
        /// 转换成Moldel
        /// </summary>
        /// <param name="xml"></param>
        /// <returns></returns>
        public static CouponsInfo ToModel(string xml)
        {
            if (string.IsNullOrEmpty(xml))
            {
                return(null);
            }
            XmlDocument xmlDoc = new XmlDocument();
            CouponsInfo model  = new CouponsInfo();

            try
            {
                xmlDoc.LoadXml(xml);
                //查找根节点
                XmlNode node = xmlDoc.SelectSingleNode("//Root");
                model.Num        = node.Attributes["Num"].Value;//列表编号
                model.Name       = node.Attributes["Name"].Value;
                model.EffectDate = DateTime.Parse(node.Attributes["EffectDate"].Value);
                model.EndDate    = DateTime.Parse(node.Attributes["EndDate"].Value);
                model.Station    = int.Parse(node.Attributes["Station"].Value);
                model.LogoImage  = node.Attributes["LogoImage"].Value;
                model.Type       = (SystemCode.EnumType.AdType)System.Enum.Parse(typeof(SystemCode.EnumType.AdType), node.Attributes["Type"].Value);
                XmlNodeList nodes = xmlDoc.SelectNodes("//Root/PopItem/Pop");
                foreach (XmlNode popItemNode in nodes)
                {
                    CouponsInfoItem scItem = new CouponsInfoItem();
                    scItem.EffectDate   = DateTime.Parse(popItemNode.Attributes["EffectDate"].Value);
                    scItem.EndDate      = DateTime.Parse(popItemNode.Attributes["EndDate"].Value);
                    scItem.IsPrint      = bool.Parse(popItemNode.Attributes["IsPrint"].Value);
                    scItem.PpoImagePath = popItemNode.Attributes["PpoImagePath"].Value;
                    scItem.ID           = popItemNode.Attributes["ID"].Value;
                    if (scItem.IsPrint)
                    {
                        foreach (XmlNode pItem in popItemNode.ChildNodes[0].ChildNodes)
                        {
                            switch (pItem.LocalName)
                            {
                            case "Content":
                            {
                                PrintItem item = new PrintItem();
                                item.TextInfo = pItem.InnerText;
                                item.IsBold   = pItem.Attributes["bold"].Value == "Y" ? true : false;
                                item.IsItalic = pItem.Attributes["italic"].Value == "Y" ? true : false;
                                item.FontSize = int.Parse(pItem.Attributes["size"].Value);
                                scItem.TemplateItem.Add(item);
                            }
                            break;

                            case "Pic":
                            {
                                PrintItem item = new PrintItem();
                                item.IsImage     = true;
                                item.ImagePath   = pItem.InnerText;
                                item.ImageHeight = double.Parse(pItem.Attributes["height"].Value);
                                item.ImageWidth  = double.Parse(pItem.Attributes["width"].Value);
                                scItem.TemplateItem.Add(item);
                            }
                            break;

                            default:
                                break;
                            }
                        }
                    }
                    model.PopItemList.Add(scItem);
                }
                nodes = xmlDoc.SelectNodes("//Root/ImageFilePath/FilePath");
                foreach (XmlNode ItemNode in nodes)
                {
                    model.ImageFilePath.Add(ItemNode.Attributes["Url"].Value);
                }
                return(model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }