注:最近在写xml操作这块东西,中间遇到了一些坑 其中就包含下面一个 遇到xml文件包含 命名空间或者注释 这时反序列化 会报错。下面就是解决方案 
//创建xml文档
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\Users\Tony\Downloads\统一标准报文格式.xml");
//去掉注释 和命名空间
string newXml = System.Text.RegularExpressions.Regex.Replace(
xmlDoc.OuterXml,
@"(xmlns:?[^=]*=[""][^""]*[""])", "",
System.Text.RegularExpressions.RegexOptions.IgnoreCase |
System.Text.RegularExpressions.RegexOptions.Multiline);
        //这里是反序列化成实体
       root info= XmlHelper.ToObject<root>(newXml);
     /// <summary>
/// XML帮助类
/// </summary>
public class XmlHelper
{
/// <summary>
/// xml转实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="content">xml字符串</param>
/// <returns></returns>
public static T ToObject<T>(string content) where T : new()
{
using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(content)))
{
XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
return (T)xmlFormat.Deserialize(stream);
}
} /// <summary>
/// 实体转xml
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static string ToXml<T>(T t) where T : new()
{
XmlSerializer xmlSerializer = new XmlSerializer(t.GetType());
Stream stream = new MemoryStream();
xmlSerializer.Serialize(stream, t);
stream.Position = ;
StreamReader reader = new StreamReader(stream);
string text = reader.ReadToEnd();
return text;
}
}

XML 解析默认去掉命名空间和注释的更多相关文章

  1. 【spring源码系列】之【xml解析】

    1. 读源码的方法 java程序员都知道读源码的重要性,尤其是spring的源码,代码设计不仅优雅,而且功能越来越强大,几乎可以与很多开源框架整合,让应用更易于专注业务领域开发.但是能把spring的 ...

  2. 【转】C# XML序列化去掉XML默认的命名空间及声明头

    http://blog.csdn.net/aoshilang2249/article/details/44860155 重点: XmlSerializerNamespaces namespaces = ...

  3. 从零开始学spring源码之xml解析(二):默认标签和自定义标签解析

    默认标签: 上一篇说到spring的默认标签和自定义标签,发现这里面东西还蛮多的.决定还是拆开来写.今天就来好好聊聊这两块是怎么玩的,首先我们先看看默认标签: private void parseDe ...

  4. 带有命名空间的xml解析,C#

    前一段时间做花旗的接口,返回的xml格式是带有命名空间的,可是难倒了我,找了好久才找到解决办法,给大家分享下,少走弯路. 1,直接进入正题,先看一段带有命名空间的xml,这段xml大概的意思是,前面是 ...

  5. Java数据库编程、XML解析技术

    数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...

  6. 深入解读XML解析

    一.XML是什么?有什么用? XML是指.作为配置文件存在 二.XML的基本语法 1.文档声明:很重要 在编写XML文档时,需要先使用文档声明来声明XML文档.且必须出现在文档的第一行. 作用:告知解 ...

  7. Python XML解析之ElementTree

    参考网址: http://www.runoob.com/python/python-xml.html https://docs.python.org/2/library/xml.etree.eleme ...

  8. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  9. 【Android】实现XML解析的几种技术

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

随机推荐

  1. 转载---SuperMap GIS 9D SP1学习视频播单

    转自:http://blog.csdn.net/supermapsupport/article/details/79219102 SuperMap GIS 9D SP1学习视频播单 我们一直在思考什么 ...

  2. Jquery判断checkbox是否被选中

    jQuery中: $("input[type='checkbox']").is(':checked') 返回true或false 1.attr()方法  设置或者返回备选元素的值 ...

  3. Java基础学习笔记二十一 多线程

    多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...

  4. 解决办法:由于oracle版本不同导致导入数据时失败

    在向一个数据库导入dmp文件时,出现了如下错误 经查询,是由于"导出的dmp文件与导入的数据库的版本不同造成的" 用notepad查看dmp文件的版本,看看是否和数据库版本一致 解 ...

  5. Java Collections API和泛型

    Java Collections API和泛型 数据结构和算法 学会一门编程语言,你可以写出一些可以工作的代码用计算机来解决一些问题,然而想要优雅而高效的解决问题,就要学习数据结构和算法了.当然对数据 ...

  6. 学号:201621123032 《Java程序设计》第14周学习总结

    1:本周学习总结 2:使用数据库技术改造你的系统 2.1:简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 建立一个图书馆的表 建立读者用户个人的借书信息表---但是目前没有办法做到 ...

  7. maven添加oracle驱动

    由于oracle商业版权问题,maven是不可以直接下载jar包的,所以..   先将ojdbc14.jar放到用户目录,win7放到C:\Users\Administrator然后在cmd执行   ...

  8. 201621123043《java程序设计》第4周学习总结

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键字:继承.覆盖.多态 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. 1.3 可选:使用 ...

  9. 玩转Leveldb原理及源码--拙见1

    可以说是不知天高地厚.. 可以说是班门弄斧.. 但是,我今天还就这样走了,我喜欢!!!!!! 注:后续文章,限于篇幅,不懂名词都有 紫色+下划线 超链接,有兴趣,可以查阅: 网上关于Leveldb 的 ...

  10. axios封装

    前言 作为出入vue的小萌新,我在写请求的时候,也是毫不犹豫写了ajax,结果肯定是不行的... Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2. ...