一、将实体对象转为xml

        /// <summary>
        /// 将实体对象转换成XML
        /// </summary>
        public string ToXml<T>(T obj)
        {
            try
            {
                XmlSerializer xmlSer = new XmlSerializer(typeof(T));
                string result = string.Empty;
                Encoding encode = Encoding.UTF8;
                //方法1:
                string utf8;
                using (StringWriter writer = new Utf8StringWriter())
                {
                    xmlSer.Serialize(writer, obj);
                    utf8 = writer.ToString();
                }
                return utf8;
                //MemoryStream stream = new MemoryStream();
                //XmlSerializer xmlSer = new XmlSerializer(typeof(T));

                //xmlSer.Serialize(stream, obj);
                //stream.Position = 0;
                //StreamReader sr = new StreamReader(stream, Encoding.UTF8,true);
                //return sr.ReadToEnd();

                //using (StringWriter sw = new StringWriter()) 
                //{ 
                //    Type t = obj.GetType(); 
                //    XmlSerializer serializer = new XmlSerializer(obj.GetType()); 
                //    serializer.Serialize(sw, obj); 
                //    sw.Close(); 
                //    return sw.ToString(); 
                //}
            }
            catch (Exception ex)
            {
                throw new Exception("将实体对象转换成XML异常", ex);
            }
        }

二、将xml序列化为实体对象

/// <summary>
        /// 将xml转换成实体对象
        /// </summary>
        public T DESerializer<T>(string strXML) where T : class
        {
            try
            {
                using (StringReader sr = new StringReader(strXML))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(T));
                    return serializer.Deserialize(sr) as T;
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }

三、查找某个xml节点

    //XmlDocument xmlDoc = new XmlDocument();//查找xml节点
            //xmlDoc.LoadXml(reqXml);
            //XmlNodeList rootNode = xmlDoc.SelectNodes("//SimDirectDebitAuthREQ");
            //foreach (XmlElement element in rootNode)
            //{
            //    string sdfdjbh = element.GetElementsByTagName("DebtorName")[0].InnerText;  //节点

            //}

四、再某个节点后面添加节点

 XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(reqXml);
            XmlNodeList rootNode = xmlDoc.SelectNodes("//SimDirectDebitAuthREQ");
            XmlNode xmlservers = rootNode[0].SelectSingleNode("//SimDirectDebitAuthREQ");
            XmlNode xmlserver = rootNode[0].SelectSingleNode("//DebtorID1");
            XmlElement jp_shez = xmlDoc.CreateElement("DebtorID2");

            XmlElement x = xmlDoc.CreateElement("rrr");
            x.InnerText = "1";
            jp_shez.AppendChild(x);
            xmlservers.InsertAfter(jp_shez,xmlserver);//在某个节点后添加节点

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐