C#—— XML的处理(string 和 xml 的相互转化)

一、实体类转为 XML字符串

		string requestXML = Serializer(typeof(CnoocSAPAccountPay.DT_Entrade_AccountPay_SAP_Request), req);//CnoocSAPAccountPay.DT_Entrade_AccountPay_SAP_Request为实体类类型,req为实体类对象

		private string Serializer(Type type, object obj)
        {
            MemoryStream Stream = new MemoryStream();
            XmlSerializer xml = new XmlSerializer(type);
            try
            {
                //Serialize object
                xml.Serialize(Stream, obj);
            }
            catch (InvalidOperationException)
            {
                throw;
            }
            Stream.Position = 0;
            StreamReader sr = new StreamReader(Stream);
            string str = sr.ReadToEnd();

            sr.Dispose();
            Stream.Dispose();

            return str;
        }

二、string 转 xml

string content = Serializer(req.GetType(), req);//序列化实体类
XmlDocument xdocC = new XmlDocument();
xdocC.LoadXml(content);//xdoC即为xml数据对象

XmlNodeList topMC = xdocC.SelectNodes("//DT_Entrade_AccountPay_SAP_Request");//查找对应结点 
foreach (XmlElement tm in topMC)
{
	content = tm.InnerXml.ToString();//获取结点内部xml数据
}

XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(postResult);
XmlNodeList topR = xdoc.SelectNodes("//Return");//将所有结点名为Return的数据拿出来,形成List集合
XmlNodeList topI = xdoc.SelectNodes("//Item");//将所有结点名为Item的数据拿出来,形成List集合

foreach (XmlElement tm in topR) //congList结合中取出要的值
{
	result.RetCode = tm.GetElementsByTagName("RetCode")[0].InnerText;//取出RetCode结点的值
	result.RetMsg = tm.GetElementsByTagName("RetMsg")[0].InnerText;//取出RetMsg结点的值
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值