首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

正则表达式验证Xml格式,用!解决办法

2012-01-24 
正则表达式验证Xml格式,急用!!!假设有一段XMl字符串有语法错误现在要用一正则表达式来找出其出错位置应该

正则表达式验证Xml格式,急用!!!
假设有一段XMl字符串有语法错误
现在要用一正则表达式来找出其出错位置
应该怎么写?感觉挺复杂,找大家来帮忙。

[解决办法]

探讨
为什么用正则呢?
应该是xsd

[解决办法]
确实
[解决办法]
有专业的为啥用正则表达式?
[解决办法]
探讨
谢谢
xsd是一种方案,但不是万能
比如:我随便给你一字符串你怎么验证它是正确格式的xml,如果不是那错在哪里,又怎么找出来(没办法,有人要求这么做),xsd好像做不到

正则应用更广泛一些,大家帮一下看看怎么写这个表达式
我的大致方案是:
1、匹配所有' <' '>'中间的内容,对匹配出来的内容进行第二轮匹配,即找出 ' <' '>'中间的语法错误
2、匹配所有'>' ' <'中间的内容,对匹配出来的内容进行第二轮匹配,找出其语法错误…

[解决办法]
xsd文件只能规定XML文件中的数据类型,取值范围等等,但是如何判断一个XML文件是不是正确好像不行吧?
[解决办法]
C# code
XmlReader reader = null;XmlReaderSettings settings = new XmlReaderSettings();settings.ValidationType = ValidationType.Schema;settings.IgnoreComments = true;settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationCallBack);reader = XmlReader.Create(你的文件, settings);while (reader.Read()){......}private void ValidationCallBack(object sender, ValidationEventArgs args){    XmlReader reader = (XmlReader)sender;    if (args.Severity == XmlSeverityType.Warning)    {        Console.WriteLine(string.Format("***Warning: {0}\n", args.Message));    }    else    {        Console.WriteLine(string.Format("***Error: {0}\n", args.Message));    }    Console.WriteLine(string.Format("***Value: {0}\n", reader.Value));    Console.WriteLine(string.Format("***LineNumber: {0}\n", args.Exception.LineNumber));} 

热点排行