C# 使用xsd文件驗證XML 格式是否正確


//創建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);  
                    }  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM