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(newXml);

复制代码

  1 ///

 

  2 /// XML帮助类

  3 ///

 

  4 public class XmlHelper

  5 {

  6 ///

 

  7 /// xml转实体

  8 ///

 

  9 ///

  10 ///xml字符串

  11 ///

  12 public static T ToObject(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 ///

 

  22 /// 实体转xml

  23 ///

 

  24 ///

  25 ///

  26 ///

  27 public static string ToXml(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 }

  复制代码(编辑:雷林鹏 来源:网络)

转载于:https://www.cnblogs.com/pengpeng1208/p/9441130.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值