在C#中,可以使用以下方法对XML进行校验:
首先,创建一个XmlReaderSettings对象,并设置相应的验证规则。例如,要验证XML文档是否具有正确的根元素,可以设置ValidationType属性为"root"。然后,创建一个XmlReader对象,将XML文档的路径作为参数传递给它,并将XmlReaderSettings对象作为参数传递给XmlReader的Create方法。最后,使用XmlReader对象的Read方法开始读取XML文档,并使用XmlReader的Validate方法进行验证。
以下是一个示例代码:
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = "root";
settings.ValidationEventHandler += new ValidationEventHandler(OnValidationEvent);
XmlReader reader = XmlReader.Create("path/to/your/xmlfile.xml", settings);
while (reader.Read()) {
// Process the XML node
}
reader.Close();
void OnValidationEvent(object sender, ValidationEventArgs e) {
throw new ApplicationException("XML validation error: " + e.Message);
}
在上面的示例中,如果XML文档未通过验证,将引发一个ApplicationException异常,并显示错误消息。您可以根据需要修改此事件处理程序以执行其他操作。
首先,创建一个XDocument对象,并使用Load方法加载XML文档。然后,创建一个XDocumentSchema对象,并使用Load方法加载XML模式文档(XSD文件)。最后,使用XDocument对象的Validate方法进行验证,并将XDocumentSchema对象作为参数传递给它。
以下是一个示例代码:
XDocument xdoc = XDocument.Load("path/to/your/xmlfile.xml");
XDocumentSchema schema = XDocumentSchema.Load("path/to/your/schemafile.xsd");
bool isValid = true;
xdoc.Validate(schema, (sender, args) => {
isValid = false;
});
if (!isValid) {
throw new ApplicationException("XML validation error: " + args.Message);
}
在上面的示例中,如果XML文档未通过验证,将引发一个ApplicationException异常,并显示错误消息。您可以根据需要修改此事件处理程序以执行其他操作。