c# – 如何通过.NET验证xml代码文件?如果我使用XML序列化,我该
发布时间:2020-12-15 19:55:10 所属栏目:百科 来源:网络整理
导读:我希望用户能够将数据导出为 XML文件.当然,我希望他们以后能够导入相同的XML文件,但是他们总是可以更改它,或者它可能是不同的XML文件. 所以我想验证XML文件以检查它是否采用我期望的格式.所以我想我需要像模式一样来检查它必须通过代码. 所以,如果我期待 Roo
我希望用户能够将数据导出为
XML文件.当然,我希望他们以后能够导入相同的XML文件,但是他们总是可以更改它,或者它可能是不同的XML文件.
所以我想验证XML文件以检查它是否采用我期望的格式.所以我想我需要像模式一样来检查它必须通过代码. 所以,如果我期待 <Root> <Something> <SomethingElse> </SomethingElse> </Something> </Root> 我不希望其他格式在文件中,而不是我期望的格式. 另外我如何验证字段?就像说我要求标签之间必须有一些文字.如果为空,则文件无效. 那怎么能这样呢? 编辑 我决定使用XML序列化,所以我知道如果格式错误并且忽略不起作用的东西,它将通过异常.但是,我不确定是否应该通过它和C#来验证每个记录,或者我应该尝试使用xml架构来完成它. 如果我想通过xml序列化的xml架构来实现它将如何工作?就像我首先做的事情,就像我在回复中看到的那样,然后将其序列化?或者我该怎么做? 解决方法
这是一个可用于执行此操作的代码段:
using (FileStream stream = File.OpenRead(xsdFilepath)) { XmlReaderSettings settings = new XmlReaderSettings(); XmlSchema schema = XmlSchema.Read(stream,OnXsdSyntaxError); settings.ValidationType = ValidationType.Schema; settings.Schemas.Add(schema); settings.ValidationEventHandler += OnXmlSyntaxError; using (XmlReader validator = XmlReader.Create(xmlPath,settings)) { // Validate the entire xml file while (validator.Read()) ; } } 发生语法错误时将调用OnXmlSyntaxError函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |