本文实例讲述了C#使用xsd文件验证XML格式是否正确的实现方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
//创建xmlDocument XmlDocument doc = new XmlDocument(); //创建声明段 如<?xml version="1.0" encoding="utf-8" ?> doc.AppendChild(doc.CreateXmlDeclaration( "1.0" , "utf-8" , null )); //创建一个根节点 KYTResults XmlElement results = doc.CreateElement( "KYTResults" ); //创建 ResultsStatus XmlNode resultsStatus = doc.CreateElement( "ResultsStatus" ); //创建Level XmlElement element = doc.CreateElement( "Level" ); element.InnerText = status ? "0" : "1" ; resultsStatus.AppendChild(element); //创建Description element = doc.CreateElement( "Description" ); element.InnerText = msg; resultsStatus.AppendChild(element); //创建PassKey 如果用户登录失败 将加载空字符 element = doc.CreateElement( "PassKey" ); element.InnerText = key; resultsStatus.AppendChild(element); results.AppendChild(resultsStatus); //END 创建 ResultsStatus //创建 DataList 数据集合 if (status) { results.AppendChild(dataList); } //END 创建一个根节点 KYTResults doc.AppendChild(results); string path = Server.MapPath( "/ws/xsd/ReceiveReturn.xsd" ); //验证xml格式是否正确 通过xsd验证 string error = "" ; //声明XmlSchema XmlSchemaSet schemas = new XmlSchemaSet(); schemas.Add( "" , XmlReader.Create(path)); //声明事件处理方法 ValidationEventHandler eventHandler = new ValidationEventHandler( delegate ( object sender, ValidationEventArgs e) { switch (e.Severity) { case XmlSeverityType.Error: error += e.Message; break ; case XmlSeverityType.Warning: break ; } }); doc.Schemas = schemas; //验证xml doc.Validate(eventHandler); //检查是否有异常 如果格式不正确就抛出来 if (! "" .Equals(error)) { throw new Exception(error); } |
希望本文所述对大家C#程序设计有所帮助。