在开发中遇到调用接口范围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

最新文章

  1. JSP 9大内置对象详解
  2. Droid4x快照还原
  3. C#读取数据库字节流生成图片
  4. 项目启动异常java.lang.OutOfMemoryError: PermGen space
  5. Bookshelf 2
  6. Java基础(43):Java中的Object类与其方法(转)
  7. hdu4003Find Metal Mineral(树形DP)
  8. jQuery对象和dom对象的辨析和相互转化
  9. Netbeans7.0完美中文+Consolas字体显示配置(亲测可用)
  10. Tomcat配置gzip压缩
  11. Python文件中文编码问题
  12. weblogic生产、开发模式互转
  13. js数组快速排序
  14. 将apache的prefork改成worker
  15. 安卓笔记--Style的继承
  16. gulp打包普通项目
  17. POJ1459 Power Network 网络流 最大流
  18. AIUI开放平台:多轮对话返回前几轮语槽数据
  19. ul点击li,增加样式
  20. 几种RAID介绍(总结)

热门文章

  1. Excel工具(批量生成txt)
  2. MYSQL 5.7及以上【ONLY_FULL_GROUP_BY】报错和解决方法
  3. 备份docker mysql数据库
  4. 基于excel的自动化框架
  5. 12组-Beta冲刺-3/5
  6. bootstrap table表格按钮
  7. Go组件库总结之事件注册唤醒
  8. linux 下彻底删除MySQL
  9. 计算机科学导论-第三版-学习笔记-chapter1-绪论
  10. 浅谈Redis与分布式锁