| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Xml;namespace BJShouXinYB_Demo{    class AnalysisXML    {        public XmlDocument GetXmlDoc(string sXML)        {            XmlDocument xmlDoc = new XmlDocument();            xmlDoc.LoadXml(sXML);            return xmlDoc;        }        public XmlNode GetNodeFromPath(XmlNode oParentNode, string sPath)        {            XmlNode tmpNode = oParentNode.SelectNodes(sPath)[0];            return tmpNode;        }        public bool CheckState(XmlDocument xmlDoc,out string OutMsg)        {            OutMsg = "";            string sState = GetNodeFromPath(xmlDoc.DocumentElement, "state").Attributes["success"].InnerText;            bool bRet = false;            if (sState.Equals("true"))            {                bRet = true;                //AddLog("调用返回状态:成功");            }            else            {                bRet = false;                //AddLog("调用返回状态:失败");                //读取错误信息                XmlNodeList errNodes = GetNodeFromPath(xmlDoc.DocumentElement, "state").SelectNodes("error");                string sErrNO = "", sErrMsg = "";                for (int i = 0; i < errNodes.Count; i++)                {                    if (errNodes[i].Attributes.Count > 0)                    {                        sErrNO = errNodes[i].Attributes["no"].InnerText;                        sErrMsg = errNodes[i].Attributes["info"].InnerText;                        //AddLog("调用返回错误:编号 [" + sErrNO + "] -- 描述 [" + sErrMsg + "]");                    }                }                //读取警告信息                string sWarNO = "", sWarMsg = "";                XmlNodeList warNodes = GetNodeFromPath(xmlDoc.DocumentElement, "state").SelectNodes("warning");                for (int i = 0; i < warNodes.Count; i++)                {                    if (warNodes[i].Attributes.Count > 0)                    {                        sWarNO = warNodes[i].Attributes["no"].InnerText;                        sWarMsg = warNodes[i].Attributes["info"].InnerText;                        //AddLog("调用返回警告:编号 [" + sWarNO + "] -- 描述 [" + sWarMsg + "]");                    }                }                OutMsg = "错误编号:" + sErrNO + "\n" +                         "错误信息:" + sErrMsg + "\n" +                         "警告编号:" + sWarNO + "\n" +                         "警告信息:" + sWarMsg + "\n";            }            //读取信息            //XmlNodeList infNodes = GetNodeFromPath(xmlDoc.DocumentElement, "state").SelectNodes("information");            //for (int i = 0; i < infNodes.Count; i++)            //{            //    if (infNodes[i].Attributes.Count > 0)            //    {            //        string sInfNO = infNodes[i].Attributes["no"].InnerText;            //        string sInfMsg = infNodes[i].Attributes["info"].InnerText;            //        //AddLog("调用返回信息:编号 [" + sInfNO + "] -- 描述 [" + sInfMsg + "]");            //    }            //}            return bRet;        }        //public string bSucess(XmlDocument xmlDoc, string ItemName)        //{        //    if (Node(ItemName) <> null)        //}        //public string GetXMLValue(string aXmlText, string FieldName)        //{         //}        public bool CheckOutputState(XmlDocument xmlDoc)        {            string sState = GetNodeFromPath(xmlDoc.DocumentElement, "state").Attributes["success"].InnerText;            bool bRet = false;            if (sState.Equals("true"))            {                bRet = true;                //AddLog("调用返回状态:成功");            }            else            {                bRet = false;                //AddLog("调用返回状态:失败");            }            //读取错误信息            XmlNodeList errNodes = GetNodeFromPath(xmlDoc.DocumentElement, "state").SelectNodes("error");            for (int i = 0; i < errNodes.Count; i++)            {                if (errNodes[i].Attributes.Count > 0)                {                    string sErrNO = errNodes[i].Attributes["no"].InnerText;                    string sErrMsg = errNodes[i].Attributes["info"].InnerText;                    //AddLog("调用返回错误:编号 [" + sErrNO + "] -- 描述 [" + sErrMsg + "]");                }            }            //读取警告信息            XmlNodeList warNodes = GetNodeFromPath(xmlDoc.DocumentElement, "state").SelectNodes("warning");            for (int i = 0; i < warNodes.Count; i++)            {                if (warNodes[i].Attributes.Count > 0)                {                    string sWarNO = warNodes[i].Attributes["no"].InnerText;                    string sWarMsg = warNodes[i].Attributes["info"].InnerText;                    //AddLog("调用返回警告:编号 [" + sWarNO + "] -- 描述 [" + sWarMsg + "]");                }            }            //读取信息            XmlNodeList infNodes = GetNodeFromPath(xmlDoc.DocumentElement, "state").SelectNodes("information");            for (int i = 0; i < infNodes.Count; i++)            {                if (infNodes[i].Attributes.Count > 0)                {                    string sInfNO = infNodes[i].Attributes["no"].InnerText;                    string sInfMsg = infNodes[i].Attributes["info"].InnerText;                    //AddLog("调用返回信息:编号 [" + sInfNO + "] -- 描述 [" + sInfMsg + "]");                }            }            return bRet;        }    }}
 |