什么是最简单/最简单/最干净的方法:
- 从文件系统中读取一个xml文件
- 根据 xsd 验证 xml
- 将部分xml文件读入变量
使用.net。
最佳答案
基本上,要进行 XSD 验证,您需要使用带有 ReaderSettings 的 XmlReader,后者定义要验证的 XSD 文件以及响应/捕获验证错误的事件。
要读取 XSD 文件,请使用如下内容:
StreamReader xsdReader = new StreamReader(xsdFileName);
XmlSchema Schema = new XmlSchema();
Schema = XmlSchema.Read(xsdReader, new ValidationEventHandler(XSDValidationEventHandler));
和捕获读取 XSD 时可能出现的任何错误的事件处理程序(例如,如果它本身无效)将具有此签名:
private static void XSDValidationEventHandler(object sender, ValidationEventArgs e)
错误信息在 e.Message 中。
一旦您将 XSD 加载到内存中,实例化您的 XmlReader 并使用适当的设置来强制执行 XSD 验证:
XmlReaderSettings ReaderSettings = new XmlReaderSettings();
ReaderSettings.ValidationType = ValidationType.Schema;
ReaderSettings.Schemas.Add(Schema);
ReaderSettings.ValidationEventHandler += new ValidationEventHandler(XMLValidationEventHandler);
此错误事件处理程序与上面的具有相同的签名。
然后实际从头到尾读取文件:
XmlTextReader xmlReader = new XmlTextReader(xmlFileName);
XmlReader objXmlReader = XmlReader.Create(xmlReader, ReaderSettings);
while (objXmlReader.Read()) { }
如果发生任何验证错误,您的事件处理程序将被调用,您可以在其中捕获错误消息,例如向用户显示它们(或者只是有一个标志指示验证是否成功 - 你的电话:))
关于.net - 在 .net 中验证和读取 xml 文件的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/444064/