C#读取XML字符串及将XML字符串反序列化为对象
在开发中遇到调用接口范围XML格式结果情况,获取结果中我们需要的信息则可能需要这两种数据处理;
1、如何将xml字符串转换为xml对象,及查询想要的节点;
通过XmlDocument对象加载xml字符串,如下代码:
XmlDocument document = new XmlDocument();
document.LoadXml(xmlStr);
XmlNamespaceManager nsManager = new XmlNamespaceManager(document.NameTable);
nsManager.AddNamespace("mdm", "http://tempuri.org/");
XmlNode? xmlNode = document.SelectSingleNode("/mdm:DictionaryQueryResponse/mdm:Result/mdm:Members", nsManager);
在之前使用SelectSingleNode时,发现一直获取不到xml的xpath路径的节点,最终查询得知xml也存在命名空间的概念,路径要表明命名空间,才能查询到,上面代码中命名空间管理器nsManager ,添加了命名空间mdm,mdm对应的就是xml的命名空间http://tempuri.org/,每个路径前加上mdm表明xml中路径;
2、如何将xml字符串转换为c#对象,以list对象为例:
public static List<T> XmlToList<T>(string xml, string rootName) where T : class
{
XmlSerializer serializer = new XmlSerializer(typeof(List<T>), new XmlRootAttribute(rootName));
using (StringReader sr = new StringReader(xml))
{
List<T> list = serializer.Deserialize(sr) as List<T>;
return list;
}
}
方法如上,xml的根节点对应的就是方法参数rootName,XmlSerializer 实例反序列化为对象;
参考:
C#中SelectNodes找不到节点_没方向感的博客-CSDN博客_c# selectnodes
C#中读取XML文件方法_嘿嘿潶黑黑的博客-CSDN博客_c#读取xml文件
C# xml 转 list 对象 - 敌八哥 - 博客园 (cnblogs.com)
XmlNode.SelectSingleNode 方法 (System.Xml) | Microsoft Docs
最新文章
- JSP 9大内置对象详解
- Droid4x快照还原
- C#读取数据库字节流生成图片
- 项目启动异常java.lang.OutOfMemoryError: PermGen space
- Bookshelf 2
- Java基础(43):Java中的Object类与其方法(转)
- hdu4003Find Metal Mineral(树形DP)
- jQuery对象和dom对象的辨析和相互转化
- Netbeans7.0完美中文+Consolas字体显示配置(亲测可用)
- Tomcat配置gzip压缩
- Python文件中文编码问题
- weblogic生产、开发模式互转
- js数组快速排序
- 将apache的prefork改成worker
- 安卓笔记--Style的继承
- gulp打包普通项目
- POJ1459 Power Network 网络流 最大流
- AIUI开放平台:多轮对话返回前几轮语槽数据
- ul点击li,增加样式
- 几种RAID介绍(总结)