wxml报错原因_C#生成、解析xml文件以及处理报错原因
转载自: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文件以及处理报错原因相关推荐
- java中DOM解析xml文件
本文介绍了如何利用DOM(即Document Object Model文档对象模型)解析xml文件. 首先有一个xml文件: <?xml version=\"1.0\" en ...
- python解析XML文件报错 entity not defined Entity ndash not defined
报错 在处理数据集时需要解析xml文件获取需要的数据,一开始采用python自带的xml模块来做,即xml.dom.minidom,然后报错 entity not defined 也没显示是在xml文 ...
- python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch
今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...
- 服务器解析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 ...
- Castor 解析xml文件报错org.exolab.castor.xml.MarshalException
Castor 解析xml文件报错org.exolab.castor.xml.MarshalException: Illegal Text data found as child of org.exol ...
- java builder.parse_JAVA之DocumentBuilder生成解析XML
1.创建DocumentBuilderFactory DocumentBuilderFactory是用于创建DOM模式的解析器对象 , DocumentBuilderFactory是一个抽象工厂类,它 ...
- IDEA快捷键及xml文件中网址报错
Alt+Shift+Tab 切换窗口(从后往前) div+Tab 补全为 <div></div> #box+Tab ...
- 生成XML文件的步骤 解析XML文件
##生成XML文件的步骤 1.初始化一个xml的序列化器 XmlSerializer serializer = Xml.newSerializer(); 2.设置序列化器的参数 serializer. ...
- (C++)将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法
将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法 思路:将数据库所有要导出的信息通过sql语句得到,存储到结构体中,然后将结构体的内容通过自定义的xml格式导出. 此方法使用的是T ...
最新文章
- printf 格式输出代码大全
- NSHomeDirectory
- DOS下获得当前文件夹目录的命令
- 『数据库』数据库系统效率Max--数据库并发控制
- switch语句php,PHPswitch 语句 - PHP教程
- 闹猴网页特效集软件 v1.0.5.21
- 【Go】使用压缩文件优化io (二)
- 开源办公套件LibreOffice
- 斜齿轮重合度计算公式_齿轮强度校核及重合度计算(已优化)
- 人脸识别技术应用场景与前景
- 计算机专业社会调研怎么写,计算机专业调研论文提纲格式 计算机专业调研论文提纲怎么写...
- 【ERP软件】ERP体系二次开发有哪些危险?
- 日知录-章0:当我们在谈论大数据时,我们在谈什么?
- 计算机占用空间怎么算,电脑系统我的电脑的C盘空间占用了19G还剩余8G,请问这算是正常 爱问知识人...
- 关于把秒换算成分钟和小时的c程序
- 微信JS-SDK的PHP demo页面,解决Internal error 500错误
- Java高并发系列5-线程池
- Neat Video Pro插件如何在Flame 2020中使用
- 3016 质子撞击炮 II
- C语言初识关键字和预处理指令
热门文章
- Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) F. Bits And Pieces sosdp预处理超集
- 图中异色点对最短距离(最小生成树+线段树)
- 【无码专区10】第K大查询(双向链表 /主席树+st表)
- # CF1572B Xor of 3(构造)
- P7518-[省选联考2021A/B卷]宝石【主席树,二分】
- P3235-[HNOI2014]江南乐【整除分块,SG函数】
- jzoj3347,bzoj3257-[NOI2013模拟]树的难题【树形dp】
- 欢乐纪中某B组赛【2019.1.27】
- 【贪心】奶酪厂(jzoj 1285)
- 【DP】剪草(jzoj 1510)