c# – 如何通过.NET验证xml代码文件?如果我使用XML序列化,我该怎么做?

c# – 如何通过.NET验证xml代码文件?如果我使用XML序列化,我该怎么做?,第1张

概述我希望用户能够将数据导出为 XML文件.当然,我希望他们以后能够导入相同的XML文件,但是他们总是可以更改它,或者它可能是不同的XML文件. 所以我想验证XML文件以检查它是否采用我期望的格式.所以我想我需要像模式一样来检查它必须通过代码. 所以,如果我期待 <Root> <Something> <SomethingElse> </SomethingElse> </Something> 我希望用户能够将数据导出为 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函数.

总结

以上是内存溢出为你收集整理的c# – 如何通过.NET验证xml代码文件?如果我使用XML序列化,我该怎么做?全部内容,希望文章能够帮你解决c# – 如何通过.NET验证xml代码文件?如果我使用XML序列化,我该怎么做?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1225328.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存