XML 解析默认去掉命名空间和注释

简介: 原文:XML 解析默认去掉命名空间和注释         注:最近在写xml操作这块东西,中间遇到了一些坑 其中就包含下面一个 遇到xml文件包含 命名空间或者注释 这时反序列化 会报错。下面就是解决方案 1 //创建xml文档 2 Xm...

原文:XML 解析默认去掉命名空间和注释

         注:最近在写xml操作这块东西,中间遇到了一些坑 其中就包含下面一个 遇到xml文件包含 命名空间或者注释 这时反序列化 会报错。下面就是解决方案 
1 //创建xml文档 2 XmlDocument xmlDoc = new XmlDocument(); 3 xmlDoc.Load(@"C:\Users\Tony\Downloads\统一标准报文格式.xml"); 4 //去掉注释 和命名空间 5 string newXml = System.Text.RegularExpressions.Regex.Replace( 6 xmlDoc.OuterXml, 7 @"(xmlns:?[^=]*=[""][^""]*[""])", "", 8 System.Text.RegularExpressions.RegexOptions.IgnoreCase | 9 System.Text.RegularExpressions.RegexOptions.Multiline); 10         //这里是反序列化成实体 11        root info= XmlHelper.ToObject<root>(newXml);
 1     /// <summary>
 2     /// XML帮助类
 3     /// </summary>
 4     public class XmlHelper
 5     {
 6         /// <summary>
 7         /// xml转实体
 8         /// </summary>
 9         /// <typeparam name="T"></typeparam>
10         /// <param name="content">xml字符串</param>
11         /// <returns></returns>
12         public static T ToObject<T>(string content) where T : new()
13         {
14             using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(content)))
15             {
16                 XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
17                 return (T)xmlFormat.Deserialize(stream);
18             }
19         }
20         
21         /// <summary>
22         /// 实体转xml
23         /// </summary>
24         /// <typeparam name="T"></typeparam>
25         /// <param name="t"></param>
26         /// <returns></returns>
27         public static string ToXml<T>(T t) where T : new()
28         {
29             XmlSerializer xmlSerializer = new XmlSerializer(t.GetType());
30             Stream stream = new MemoryStream();
31             xmlSerializer.Serialize(stream, t);
32             stream.Position = 0;
33             StreamReader reader = new StreamReader(stream);
34             string text = reader.ReadToEnd();
35             return text;
36         }
37     }
View Code

 

目录
相关文章
|
7月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
1652 1
|
7月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
178 15
|
8月前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
10月前
|
PHP 开发者 容器
PHP命名空间深度解析:避免命名冲突与提升代码组织####
本文深入探讨了PHP中命名空间的概念、用途及最佳实践,揭示其在解决全局命名冲突、提高代码可维护性方面的重要性。通过生动实例和详尽分析,本文将帮助开发者有效利用命名空间来优化大型项目结构,确保代码的清晰与高效。 ####
147 20
|
10月前
|
PHP 开发者 容器
PHP命名空间深度解析及其最佳实践####
本文深入探讨了PHP中引入命名空间的重要性与实用性,通过实例讲解了如何定义、使用及别名化命名空间,旨在帮助开发者有效避免代码冲突,提升项目的模块化与可维护性。同时,文章还涉及了PHP-FIG标准,引导读者遵循最佳实践,优化代码结构,促进团队协作效率。 ####
122 1
|
11月前
|
PHP 开发者 容器
PHP命名空间深度解析与最佳实践####
本文深入探讨了PHP中命名空间(namespace)的机制、应用场景及最佳实践,旨在帮助开发者有效避免命名冲突,提升代码的组织性和可维护性。通过实例讲解,本文将引导您理解如何在实际项目中灵活运用命名空间,以及如何遵循业界公认的最佳实践来优化您的PHP代码结构。 ####
|
11月前
|
XML 数据格式 开发者
XML 命名空间
XML 命名空间
|
12月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
12月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
12月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
199 0

推荐镜像

更多
  • DNS