.NET调用外部接口将得到的List数据,并使用XmlSerializer序列化List对象成XML格式

       BidOpeningData.BidSupervisionSoapClient client = new BidOpeningData.BidSupervisionSoapClient();
            Dictionary<string, string> param = new Dictionary<string, string>();
            param.Add(CommonParam.ConnKey, DBConnHelper.GetConnectionKey(DBConnHelper.BusinessData));
            param.Add(CommonParam.AppNo, SystemPlatformEnum.BackStage_Platform);
            param.Add(CommonParam.FunctionNo, ((int)SystemModuleEnum.BackStage_AssistQuery).ToString());
            param.Add(CommonParam.Command, "FindBidOpeningList");
            param.Add("PageIndex", "1");
            param.Add("PageSize", "100000");
            param.Add("BidOpenDateStart", Request.QueryString["BidOpenDateStart"]);//开始时间
            param.Add("BidOpenDateEnd", Request.QueryString["BidOpenDateEnd"]);//结束时间

            System.Data.DataSet ds = new System.Data.DataSet("QueryDataSet");
            apiHelper.GetDataTable(param, ref ds, "QueryTable");
            string  queryXmlStr = ds.GetXml();

            var aaa = client.GetBidOpeningList(queryXmlStr);
            List<BidOpeningData.BidOpeningInfo> lst = new List<BidOpeningData.BidOpeningInfo>();
            //lst = aaa.ToList();
            //过滤重复数据
            lst = aaa.Distinct().ToList();
            lst = lst.Where((x, i) => lst.FindIndex(z => z.BidSectionDataKey == x.BidSectionDataKey) == i).ToList();
            XmlDocument xd = new XmlDocument();
            using (StringWriter sw = new StringWriter())
            {
                XmlSerializer xz = new XmlSerializer(lst.GetType());
                xz.Serialize(sw, lst);
                xd.LoadXml(sw.ToString());
            }
            //xd.LastChild.OuterXml

            param.Clear();
            param.Add(CommonParam.ConnKey, DBConnHelper.GetConnectionKey(DBConnHelper.MaccoData));
            param.Add(CommonParam.AppNo, SystemPlatformEnum.BackStage_Platform);
            param.Add(CommonParam.FunctionNo, "998020");
            param.Add(CommonParam.Command, "DoSaveBidOpeningRecord");
            param.Add("ArrayOfBidOpeningInfo", xd.LastChild.InnerXml.Replace(" xmlns=\"http://tempuri.org/\"",""));
            var result = await apiHelper.HandleData(null, param);//提交信息
            return JsonConvert.DeserializeObject(result).ToString();

PS:使用XmlSerializer序列化List对象成XML格式

XmlDocument xd = new XmlDocument();
using (StringWriter sw = new StringWriter())
{
    XmlSerializer xz = new XmlSerializer(lst.GetType());//lst为List数据
    xz.Serialize(sw, lst);
    Console.WriteLine(sw.ToString());
    xd.LoadXml(sw.ToString());
}
时间: 2024-10-03 08:25:37

.NET调用外部接口将得到的List数据,并使用XmlSerializer序列化List对象成XML格式的相关文章

oracle 10g 用dbms_xmlgen将数据表转成xml格式

oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle用plsql将sql查询的所有数据导出为xml

关于poi导出大数据量EXCEL导出缓慢的解决方案--生成xml格式的表格文件

今天遇到了一个POI导出EXCEL文件结果文件大小太大导致系统运行缓慢的问题.想到了使用输出XML格式的表格来完成. 首先,我们需要理解一下为什么POI导出EXCEL文件会导致文件大小变大.最主要的原因应该是POI变成中经常会对无关的单元格设置属性.例如:一个EXCEL工作表的最大列数为256,我们只使用10列.而编程时经常会将256列全部渲染格式,造成很大的资源浪费.当然应该还有其他很多原因也会造成表格变大. 使用这个方案的前提是对于表格的格式要求不高,因为使用的是自己的工具,没有POI优化了

xls数据文件转成xml格式的一种方法

首先你需要做一个映射模板,来映射xls文件中所有的列. 如下: <?xml version="1.0" encoding="UTF-8"?> <list> <record> <company></company> <logo></logo> <model></model> <hight></hight> <width><

ThinkPHP源码学习 data_to_xml函数 数据转成xml格式

/** * 数据XML编码 * @param mixed  $data 数据 * @param string $item 数字索引时的节点名称 * @param string $id   数字索引key转换为的属性名 * @return string */ function data_to_xml($data, $item='item', $id='id') {     $xml = $attr = '';     foreach ($data as $key => $val) {       

ThinkPHP源码学习 xml_encode函数 数据转成xml格式

/** * XML编码 * @param mixed $data 数据 * @param string $root 根节点名 * @param string $item 数字索引的子节点名 * @param string $attr 根节点属性 * @param string $id   数字索引子节点key转换的属性名 * @param string $encoding 数据编码 * @return string */ function xml_encode($data, $root='thi

php数组转换成xml格式数据

function arrayToXml($arr){     $xml = "<root>";     foreach ($arr as $key=>$val){     if(is_array($val)){     $xml.="<".$key.">".arrayToXml($val)."</".$key.">";     }else{     $xml.=&q

silverlight调用WebService传递json接收绑定数据

1.接收数据: WebService通过接口接收数据.类型为object 2.类型转换: 通过json转换方法将object转换为json格式数据 3.调用WebService方法: silverlight调用WebService方法,接收json数据 4.转换数据: silverlight引用Newtonsoft.Json.Silverlight.dll文件,调用JsonConvert.DeserializeObject<T>(json)方法进行格式转换就可以利用数据 比如:List<

WebView之js调用Android类的方法传递数据

1,具体的思路如下: 在android中写一个Activity,里面写一个webview,这个webview加载本地的一个html文件,显示这个网页,这个网页包括一个用户名和密码的输入框和两个按钮(只有登陆按钮有用),输入用户名密码之后调用android中的类,并把输入的数据传过去,再在android中输出出来(具体你那数据做什么操作就看你的需求了),这样就做大额js与android数据交互的效果了: 在android端,一些webviwe的设置和自定义类的写法如下源码: package com

利用http协议调用外部接口+用json和正则解析字符串

利用http协议调用url,进行对页面数据的抓取(听起来好像就是传说中的爬虫,百度那样的),代码如下: public static String Get(String path,String encoding) throws Exception{ //获取需要抓取页面的路径 URL url= new URL(path); //打开链接         HttpURLConnection conn = (HttpURLConnection) url.openConnection();