转载自:http://blog.csdn.net/lilinoscar/article/details/21027319

简单的介绍一下生成XML文件以及解析,因为有些数据不一定放到数据库,减少链接数据库

用xml还是比较好些。如果遇到问题也就是解析时报错,对于解析,可以选择用ie浏览器进行验证

是否符合xml格式,不能显示说明不正确,用记事本打开看也没有发现啥情况,复制出来到别的xml

文件里,运行可能正确,那就说明生成的xml编码有问题。还有就是节点有什么空格啥的。

Load和LoadXml方法的区别?

Load方法可以解析包括xml的头部文件“<?xml version="1.0" encoding="utf-8"?>”,而LoadXml

方法不能解析,会报错,它只能解析如:647e7d54-321c-4bca-ac10-301de2837d9d

中国案件4文件,不能包含xml的头部文件。

1.序列化类:

///

/// 序列化成XML

///

///

///

public static string XmlSerialize(object o)

{

XmlSerializer ser = new XmlSerializer(o.GetType());

System.IO.MemoryStream mem = new MemoryStream();

XmlTextWriter writer = new XmlTextWriter(mem, Encoding.UTF8);

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

ser.Serialize(writer, o, ns);

writer.Close();

return Encoding.UTF8.GetString(mem.ToArray());

}

///

/// 解析成XML

///

///

///

///

public static T XmlDeserialize(string s)

{

XmlDocument xdoc = new XmlDocument();

try

{

xdoc.Load(s);

XmlNodeReader reader = new XmlNodeReader(xdoc.DocumentElement);

XmlSerializer ser = new XmlSerializer(typeof(T));

object obj = ser.Deserialize(reader);

return (T)obj;

}

catch

{

return default(T);

}

}

///

/// 解析成XML,不能解析包含头部文件<?xml version="1.0" encoding="utf-8"?>

///

///

///

///

public static T LoadXmlDeserialize(string s)

{

XmlDocument xdoc = new XmlDocument();

try

{

xdoc.LoadXml(s);

XmlNodeReader reader = new XmlNodeReader(xdoc.DocumentElement);

XmlSerializer ser = new XmlSerializer(typeof(T));

object obj = ser.Deserialize(reader);

return (T)obj;

}

catch

{

return default(T);

}

}

2.//Resources类

public class Resources

{

public Guid Guid { get; set; }

public string Name { get; set; }

}

3.//生成xml

public void CreateXml(List _list, string path)

{

var xml = SerializerHelper.XmlSerialize(_list).Trim();//这个地方也需要去除空格,不然也会报错,错误跟下面的一样。

// using (StreamWriter sw = new StreamWriter(path, false,Encoding.UTF8))这个生成的xml看着是没有问题

但是网页IE不能解析,说明有问题,直接去掉Encoding.UTF8即可,不然报错“根级别上的数据无效”

using (StreamWriter sw = new StreamWriter(path, false))

{

sw.Write(xml);

}

}

4.//解析XML,指定文件路径,判断文件夹是否存在以及查找文件名

DirectoryInfo di = new DirectoryInfo("Xml");

if (!di.Exists)

{

Directory.CreateDirectory("Xml");

}

if (di.GetFiles().Length > 0)

{

foreach (FileInfo fi in di.GetFiles())

{

if (fi.Name.Contains("Resource.xml"))

{

var list = SerializerHelper.XmlDeserialize>("Xml/Resource.xml");

if (list.Count > 0)

{

}

}

}

}

wxml报错原因_C#生成、解析xml文件以及处理报错原因相关推荐

  1. java中DOM解析xml文件

    本文介绍了如何利用DOM(即Document Object Model文档对象模型)解析xml文件. 首先有一个xml文件: <?xml version=\"1.0\" en ...

  2. python解析XML文件报错 entity not defined Entity ndash not defined

    报错 在处理数据集时需要解析xml文件获取需要的数据,一开始采用python自带的xml模块来做,即xml.dom.minidom,然后报错 entity not defined 也没显示是在xml文 ...

  3. python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch

    今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...

  4. 服务器解析xml文件报错:org.dom4j.DocumentException: Error on line -1 of document

    服务器解析xml文件报错:org.dom4j.DocumentException: Error on line -1 of document  : Premature end of file. Nes ...

  5. Castor 解析xml文件报错org.exolab.castor.xml.MarshalException

    Castor 解析xml文件报错org.exolab.castor.xml.MarshalException: Illegal Text data found as child of org.exol ...

  6. java builder.parse_JAVA之DocumentBuilder生成解析XML

    1.创建DocumentBuilderFactory DocumentBuilderFactory是用于创建DOM模式的解析器对象 , DocumentBuilderFactory是一个抽象工厂类,它 ...

  7. IDEA快捷键及xml文件中网址报错

    Alt+Shift+Tab 切换窗口(从后往前) div+Tab             补全为         <div></div> #box+Tab           ...

  8. 生成XML文件的步骤 解析XML文件

    ##生成XML文件的步骤 1.初始化一个xml的序列化器 XmlSerializer serializer = Xml.newSerializer(); 2.设置序列化器的参数 serializer. ...

  9. (C++)将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法

    将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法 思路:将数据库所有要导出的信息通过sql语句得到,存储到结构体中,然后将结构体的内容通过自定义的xml格式导出. 此方法使用的是T ...

最新文章

  1. printf 格式输出代码大全
  2. NSHomeDirectory
  3. DOS下获得当前文件夹目录的命令
  4. 『数据库』数据库系统效率Max--数据库并发控制
  5. switch语句php,PHPswitch 语句 - PHP教程
  6. 闹猴网页特效集软件 v1.0.5.21
  7. 【Go】使用压缩文件优化io (二)
  8. 开源办公套件LibreOffice
  9. 斜齿轮重合度计算公式_齿轮强度校核及重合度计算(已优化)
  10. 人脸识别技术应用场景与前景
  11. 计算机专业社会调研怎么写,计算机专业调研论文提纲格式 计算机专业调研论文提纲怎么写...
  12. 【ERP软件】ERP体系二次开发有哪些危险?
  13. 日知录-章0:当我们在谈论大数据时,我们在谈什么?
  14. 计算机占用空间怎么算,电脑系统我的电脑的C盘空间占用了19G还剩余8G,请问这算是正常 爱问知识人...
  15. 关于把秒换算成分钟和小时的c程序
  16. 微信JS-SDK的PHP demo页面,解决Internal error 500错误
  17. Java高并发系列5-线程池
  18. Neat Video Pro插件如何在Flame 2020中使用
  19. 3016 质子撞击炮 II
  20. C语言初识关键字和预处理指令

热门文章

  1. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) F. Bits And Pieces sosdp预处理超集
  2. 图中异色点对最短距离(最小生成树+线段树)
  3. 【无码专区10】第K大查询(双向链表 /主席树+st表)
  4. # CF1572B Xor of 3(构造)
  5. P7518-[省选联考2021A/B卷]宝石【主席树,二分】
  6. P3235-[HNOI2014]江南乐【整除分块,SG函数】
  7. jzoj3347,bzoj3257-[NOI2013模拟]树的难题【树形dp】
  8. 欢乐纪中某B组赛【2019.1.27】
  9. 【贪心】奶酪厂(jzoj 1285)
  10. 【DP】剪草(jzoj 1510)