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; } } }