XmlValidatingReader进行xml与xsd文件校验
FileStream stream = new FileStream(xmlPath, FileMode.Open);
XmlValidatingReader vr = new XmlValidatingReader(stream, XmlNodeType.Element, null);
vr.Schemas.Add(xmlNameSpace, xsdPath);
vr.ValidationType = ValidationType.Schema;
vr.EntityHandling = EntityHandling.ExpandEntities;
vr.ValidationEventHandler += new ValidationEventHandler(ValidationHandler);
while (vr.Read()) ; XmlReaderSettings进行xml与xsd文件校验 XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationFlags |= XmlSchemaValidationFlags.AllowXmlAttributes; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); XmlReader reader = XmlReader.Create(xmlPath, settings); while (reader.Read()) ;两种方法校验都有一个问题,就是如果xml文件中缺少n个节点(大于等于2),而数据的结果只能显示第1个问题,后面的无法显示,请高手指点如何解决,谢谢。我希望可以把xml文件中缺少的所有节点找出来。
FileStream stream = new FileStream(xmlPath, FileMode.Open);
XmlValidatingReader vr = new XmlValidatingReader(stream, XmlNodeType.Element, null);
vr.Schemas.Add(xmlNameSpace, xsdPath);
vr.ValidationType = ValidationType.Schema;
vr.EntityHandling = EntityHandling.ExpandEntities;
vr.ValidationEventHandler += new ValidationEventHandler(ValidationHandler);
while (vr.Read()) ; XmlReaderSettings进行xml与xsd文件校验 XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationFlags |= XmlSchemaValidationFlags.AllowXmlAttributes; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); XmlReader reader = XmlReader.Create(xmlPath, settings); while (reader.Read()) ;两种方法校验都有一个问题,就是如果xml文件中缺少n个节点(大于等于2),而数据的结果只能显示第1个问题,后面的无法显示,请高手指点如何解决,谢谢。我希望可以把xml文件中缺少的所有节点找出来。
自己去看看