C#对于xml的操作
·
一、将实体对象转为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);//在某个节点后添加节点
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)