C# xml上传以及记录保存xml

摘要:
˃");//根节点sb.Append;//流水号sb.Append.Append.Append;//考场代码sb.Append.Append.Append;//考试科目sb.Append.Append.Append;//身份证明号码sb.Append.Append.Append;//培训驾校简称sb.Append.Append.Append;//考试日期sb.Append.Append.Append;//预约次数sb.Append.Append.Append;//考试车号sb.Append.Append.Append;//考试员签名sb.Append.Append.Append;//考生签名sb.Append.Append.Append;//人证(门禁)照片sb.Append.Append.Append;#region第一次if{//本次预约考试次数sb.Append.Append.Append;//考试开始时间sb.Append.Append.Append;//考试结束时间sb.Append.Append.Append;//考试成绩sb.Append.Append.Append;//扣分项sb.Append.Append.Append;//考试过程照片1sb.Append.Append.Append;//照片拍摄时间1sb.Append.Append.Append;//考试过程照片2sb.Append.Append.Append;//照片拍摄时间2sb.Append.Append.Append;//考试过程照片3sb.Append.Append.Append;//照片拍摄时间3sb.Append.Append.Append;}#endregion#region第二次else{//本次预约考试次数sb.Append.Append.Append;//考试开始时间sb.Append("˂

1.xml保存

 
private readonly string XMLSavePath = Path.Combine(Environment.CurrentDirectory, "XML", GlobalParam.Today);

public LogicalService()
{
// 创建XML日志保存目录
if (!Directory.Exists(XMLSavePath)) Directory.CreateDirectory(XMLSavePath);
}


#region 保存交互的XML /// <summary> ///保存XML交互数据 /// </summary> /// <param name="xml">json</param> /// <param name="fileName">保存名称</param> /// <param name="inOrOut">输入还是输入json</param> private void SaveInteractiveXMLData(string xml, string fileName, boolinOrOut) { if(GlobalParam.Params.SaveInteractiveXMLData == "1") { //拼接完整文件名 if(inOrOut) fileName = Path.Combine(XMLSavePath, $"{fileName}_In.xml"); elsefileName = Path.Combine(XMLSavePath, $"{fileName}_Out.xml"); //创建文件并保存 if(File.Exists(fileName)) File.Delete(fileName); using (FileStream fs = newFileStream(fileName, FileMode.Create, FileAccess.Write)) { byte[] bytes =Encoding.Default.GetBytes(xml); fs.Write(bytes, 0, bytes.Length); } } } #endregion

2.拼接XML案例

C# xml上传以及记录保存xml第1张C# xml上传以及记录保存xml第2张
#region 获取上传用XML文件
        private string GetXML(StudentSignUploadInfo entity, intdjc)
        {
            StringBuilder sb = newStringBuilder();
            sb.Append("<?xml version="1.0" encoding="GBK"?>");
            //根节点
            sb.Append("<drvexam>");
            //流水号
            sb.Append("<lsh>").Append(entity.Lsh).Append("</lsh>");
            //考场代码
            sb.Append("<kcdm>").Append(entity.Kcdm).Append("</kcdm>");
            //考试科目
            sb.Append("<kskm>").Append(entity.Kskm).Append("</kskm>");
            //身份证明号码
            sb.Append("<sfzmhm>").Append(entity.Sfzmhm).Append("</sfzmhm>");
            //培训驾校简称
            sb.Append("<jxjc>").Append(entity.Jxmc).Append("</jxjc>");
            //考试日期
            sb.Append("<ksrq>").Append(entity.Ksrq).Append("</ksrq>");
            //预约次数
            sb.Append("<yycs>").Append(entity.Yycs).Append("</yycs>");
            //考试车号
            sb.Append("<ksch>").Append(entity.Kcbh).Append("</ksch>");
            //考试员签名
            sb.Append("<ksyqm>").Append(entity.Kgqmzp).Append("</ksyqm>");
            //考生签名
            sb.Append("<ksqm>").Append(entity.Ksqmzp).Append("</ksqm>");
            //人证(门禁)照片
            sb.Append("<rzzp>").Append(entity.Rzzp).Append("</rzzp>");
            #region 第一次
            if (djc == 1)
            {
                //本次预约考试次数
                sb.Append("<bcyykscs>").Append(1).Append("</bcyykscs>");
                //考试开始时间
                sb.Append("<kssj>").Append(entity.Kssj1).Append("</kssj>");
                //考试结束时间
                sb.Append("<jssj>").Append(entity.Jssj1).Append("</jssj>");
                //考试成绩
                sb.Append("<kscj>").Append(entity.Jgfs1).Append("</kscj>");
                //扣分项
                sb.Append("<kfx>").Append(entity.Kfxx1).Append("</kfx>");
                //考试过程照片1
                sb.Append("<gczp1>").Append(entity.Zp1_1).Append("</gczp1>");
                //照片拍摄时间1
                sb.Append("<pssj1>").Append(entity.Zp1sj_1).Append("</pssj1>");
                //考试过程照片2
                sb.Append("<gczp2>").Append(entity.Zp2_1).Append("</gczp2>");
                //照片拍摄时间2
                sb.Append("<pssj2>").Append(entity.Zp2sj_1).Append("</pssj2>");
                //考试过程照片3
                sb.Append("<gczp3>").Append(entity.Zp3_1).Append("</gczp3>");
                //照片拍摄时间3
                sb.Append("<pssj3>").Append(entity.Zp3sj_1).Append("</pssj3>");
            }
            #endregion
            #region 第二次
            else{
                //本次预约考试次数
                sb.Append("<bcyykscs>").Append(2).Append("</bcyykscs>");
                //考试开始时间
                sb.Append("<kssj>").Append(entity.Kssj2).Append("</kssj>");
                //考试结束时间
                sb.Append("<jssj>").Append(entity.Jssj2).Append("</jssj>");
                //考试成绩
                sb.Append("<kscj>").Append(entity.Jgfs2).Append("</kscj>");
                //扣分项
                sb.Append("<kfx>").Append(entity.Kfxx2).Append("</kfx>");
                //考试过程照片1
                sb.Append("<gczp1>").Append(entity.Zp1_2).Append("</gczp1>");
                //照片拍摄时间1
                sb.Append("<pssj1>").Append(entity.Zp1sj_2).Append("</pssj1>");
                //考试过程照片2
                sb.Append("<gczp2>").Append(entity.Zp2_2).Append("</gczp2>");
                //照片拍摄时间2
                sb.Append("<pssj2>").Append(entity.Zp2sj_2).Append("</pssj2>");
                //考试过程照片3
                sb.Append("<gczp3>").Append(entity.Zp3_2).Append("</gczp3>");
                //照片拍摄时间3
                sb.Append("<pssj3>").Append(entity.Zp3sj_2).Append("</pssj3>");
            }
            #endregion
            sb.Append("</drvexam>");

            returnsb.ToString();
        }
        #endregion
View Code

3.上传XML

  #region[构建请求,获取数据]
        private bool UploadXML(string xml, out stringmessage)
        {
            bool result = true;
            message = string.Empty;
            try{
                HttpWebRequest request = null;
                request = WebRequest.Create(GlobalParam.Params.RemoteWebServiceUrl) asHttpWebRequest;
                request.Method = "POST";
                request.ContentType = "application/xml";

                using (Stream requestStream =request.GetRequestStream())
                {
                    using (StreamWriter sw = new StreamWriter(requestStream, Encoding.GetEncoding("GBK")))
                    {
                        sw.Write(xml);
                    }
                }

                HttpWebResponse response =(HttpWebResponse)request.GetResponse();
                using (Stream responseStream =response.GetResponseStream())
                {
                    using (StreamReader sr = newStreamReader(responseStream))
                    {
                        message =sr.ReadToEnd();
                    }
                }
            }
            catch(Exception ex)
            {
                log4NetUtil.Error("UploadXML", ex);
                message = $"{ex.Message}";
                result = false;
            }
            returnresult;
        }
        #endregion

4.调用参考

   //生成XML
                    string xml = this.GetXML(entity, 2);
                    //保存输入XML
                    this.SaveInteractiveXMLData(xml, $"{entity.Xm}_{entity.Sfzmhm}_2", true);
                    //上传
                    bool result = UploadXML(xml, outxml);
                    if(result)
                    {
                        if (!string.IsNullOrEmpty(xml))
                        {
                            //保存输出XML
                            this.SaveInteractiveXMLData(xml, $"{entity.Xm}_{entity.Sfzmhm}_2", false);
                            //解析XML
                            XmlDocument xmlDoc = newXmlDocument();
                            xmlDoc.LoadXml(xml);
                            XmlNode node = xmlDoc.SelectSingleNode("/result");
                            string code = node.Attributes["code"].Value;
                            string message = node.Attributes["message"].Value;
                            //成功
                            if (code == "1")
                            {
                                this.SaveSignUploadResultToDB(entity, true);
                                entity.KL_sign_upload_2 = 1;
                                entity.UploadMessage_2 =message;
                            }
                            //失败
                            else{
                                entity.UploadMessage_2 = $"上传失败:{code}_{message}";
                                SoundPlayerUtils.PlaySound();
                                return;
                            }
                        }
                        else{
                            entity.UploadMessage_2 = $"调用上传接口无返回";
                            return;
                        }
                    }
                    else{
                        entity.UploadMessage_2 = $"调用上传接口失败:{xml}";
                        return;
                    }

免责声明:文章转载自《C# xml上传以及记录保存xml》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python pip升级失败win7下安装ubuntu双系统的方法及心得体会(ps:要死好几回的节奏)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解决maven项目无法读取src/main/java目录下面的配置文件问题

我们在用Mybatis去操作底层数据库的时候,需要用到xml配置文件,一般我们是把配置文件和dao放置在同一层目录。 但是在用idea操作maven项目的时候,我们可能会遇到无法读取到dao对应的mapper.xml文件。 简单的解决方法如下: 第一种: 将xml文件移至src/main/resource下面,这样做最省事,但是面临一个问题,就是看起来项目...

C# Xml序列化与反序列化

Xml文本的序列化与反序列化: public static class XmlSerializeHelper { // 序列化:对象 -> Xml文本 public static string SerializeToXmlString(object obj) {...

认识solr结构,了解核心的文件目录

下载solr并解压后,发现solr的目录里有很多的东西,此时我们可能会感到很恐慌,不知如何下手,下面让我带你认识它。 1、解压后的solr目录结构如下: 虽然里面有很多的文件,但是我们需要的其实就两个,如上图画有红框的文件solr和webapps,其他的文件你可以先忽略它,有兴趣可以看看《五分钟solr教程》。 2、部署到tomcat 根据《solr部署...

maximo功能修改笔记

      经过前几次的简单的修改系统功能,对maximo的bean开发已经有了一定了解,现在是耗时近两个礼拜来修改了一项系统功能,所用到的知识 Bean Fld, 下面我认真总结修改功能过程中的学到的知识: 目标效果一:          点击页面上新增的按钮,弹出一个dialog,然后在dialog里面可以进行多选,然后点击 “确定” 后,在当前的记录...

帝国CMS 复制word里面带图文的文章,图片可以直接显示

1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java。前端为Jsp(前端都一样,后台如果语言不通得自己做 Base64编码解码) 因为公司业务需要支持IE8 ,网上其实有很多富文本框,效果都很好。 例如www.wangEditor.com  但试了一圈都不支持IE8 。 所...

java生成解析xml的另外两种方法Xstream

Xstream生成和解析xm和JAXB生成和解析xml的方法。 一,Xstream Xstream非jdk自带的,需要到入Xstream-1.4.3.jar和xpp3_min-1.1.4.jar 1.Xstream简介;  使用限制: JDK版本不能<1.5. 虽然预处理注解是安全的,但自动侦查注解可能发生竞争条件. 特点: 简化的API; 无映射文...