xml解析

 private SubmitResult GetXmlGwSendResult(string result)
        {
            if (result.IsNullOrWhiteSpace())
            {
                return null;
            }

            XElement el;
            try
            {
                el = XElement.Parse(result);
            }
            catch (Exception ex)
            {
                Logger.Error("解析XML出错", ex);
                return null;
            }

            var root = el.XPathSelectElement("/");
            if (root == null) return null;
            var isError = root.XPathSelectElement("errorstatus") != null;
            if (isError) return CreateError(root);
            return CreateSucc(root);
        }

        private SubmitResult CreateError(XElement root)
        {
            var rlt = new SubmitResult
            {
                Status = false,
                Message = root.XPathSelectElement("remark")?.Value,
                ErrorCode = root.XPathSelectElement("error")?.Value
            };
            return rlt;
        }

        private SubmitResult CreateSucc(XElement root)
        {
            var status = root.XPathSelectElement("returnstatus")?.Value;
            var message = root.XPathSelectElement("message")?.Value;
            var balance = root.XPathSelectElement("remainpoint")?.Value;
            var taskid = root.XPathSelectElement("taskID")?.Value;
            var successCount = root.XPathSelectElement("successCounts")?.Value;

            var rlt = new SubmitResult
            {
                Status = status != null && status.Equals("success", StringComparison.OrdinalIgnoreCase),
                Message = message,
                Balance = balance.IsNullOrEmpty() ? 0 : Convert.ToInt32(balance),
                TaskId = taskid,
                SuccessCount = successCount.IsNullOrEmpty() ? 0 : Convert.ToInt32(successCount)
            };
            return rlt;
        }

posted on 2018-08-08 09:33  跨界农民工  阅读(129)  评论(0编辑  收藏  举报

导航