c# 把数据库的数据动态生成固定xml文件格式的(求求大神们的指导了)

问题描述

xml生成的格式:<?xmlversion="1.0"encoding="utf-8"?><Message>//<head></head>标签里面的内容是固定的<Head><BizMsgID>3307</BizMsgID><ASID>AS100</ASID><AreaCode>3307</AreaCode></Head>//<Data></Data>标签里面的内容是从数据库读取到的(动态绑定的)<Data><ZTT="1"A="11"B="0"C="1"D="1"E="1"F="1"G="99"H="1"/></Data></Message>

解决方案

解决方案二:
参考,另外你的xml是错误的,ZIT不能直接跟等号stringxml=@"<Message><Head><BizMsgID>3307</BizMsgID><ASID>AS100</ASID><AreaCode>3307</AreaCode></Head><Data></Data></Message>";//<ZTT="1"A="11"B="0"C="1"D="1"E="1"F="1"G="99"H="1"/>vardata=new{A=11,B=0,C=1,D=1,E=1};XElementroot=XElement.Parse(xml);varele=newXElement("ZIT");foreach(varpindata.GetType().GetProperties()){ele.SetAttributeValue(p.Name,p.GetValue(data));}root.Element("Data").Add(ele);Console.WriteLine(root);

解决方案三:
嗯嗯、我打快打错了<ZTTA="11"B="0"C="1"D="1"E="1"F="1"G="99"H="1"/>;那按照你这个写法、最后保存的路径,应该怎么写
解决方案四:
引用1楼starfd的回复:

参考,另外你的xml是错误的,ZIT不能直接跟等号stringxml=@"<Message><Head><BizMsgID>3307</BizMsgID><ASID>AS100</ASID><AreaCode>3307</AreaCode></Head><Data></Data></Message>";//<ZTT="1"A="11"B="0"C="1"D="1"E="1"F="1"G="99"H="1"/>vardata=new{A=11,B=0,C=1,D=1,E=1};XElementroot=XElement.Parse(xml);varele=newXElement("ZIT");foreach(varpindata.GetType().GetProperties()){ele.SetAttributeValue(p.Name,p.GetValue(data));}root.Element("Data").Add(ele);Console.WriteLine(root);

那按照你这个写法、最后保存的路径,应该怎么写
解决方案五:
stringsavePath="c:....save.xml";root.Save(savePath);即可以保存xml内容
解决方案六:
引用1楼娃都会打酱油了的回复:

参考,另外你的xml是错误的,ZIT不能直接跟等号stringxml=@"<Message><Head><BizMsgID>3307</BizMsgID><ASID>AS100</ASID><AreaCode>3307</AreaCode></Head><Data></Data></Message>";//<ZTT="1"A="11"B="0"C="1"D="1"E="1"F="1"G="99"H="1"/>vardata=new{A=11,B=0,C=1,D=1,E=1};XElementroot=XElement.Parse(xml);varele=newXElement("ZIT");foreach(varpindata.GetType().GetProperties()){ele.SetAttributeValue(p.Name,p.GetValue(data));}root.Element("Data").Add(ele);Console.WriteLine(root);

大神,这个我要绑定的数据是从数据库动态生成的。你这个写死了啊
解决方案七:
你用个string读取db信息,然后把string变量替换进去就可以了呗!
解决方案八:
引用4楼kensouterry1的回复:

stringsavePath="c:....save.xml";root.Save(savePath);即可以保存xml内容

谢谢,这个我都写出来了。和1楼那个方法差不多、不过都是写死了。我是想<data></data>里面的数据是可以动态绑定的。是动态的但不是写死的!
解决方案九:
引用6楼kensouterry1的回复:

你用个string读取db信息,然后把string变量替换进去就可以了呗!

不会啊,能够写下嘛。谢谢了大神
解决方案十:
你要怎么动态?ZIT是动态生成,最后通过root.Element("Data").Add进去的,ZIT的属性也都是通过反射得到的,你还有什么地方要动态的?
解决方案十一:
staticvoidMain(string[]args){stringxml=@"<Message><Head><BizMsgID>3307</BizMsgID><ASID>AS100</ASID><AreaCode>3307</AreaCode></Head><Data></Data></Message>";//<ZTT="1"A="11"B="0"C="1"D="1"E="1"F="1"G="99"H="1"/>//自己从数据库中构造dictionary对象,键值对beginDictionary<string,string>ht=newDictionary<string,string>();ht.Add("ZIT","1");ht.Add("A","1");ht.Add("B","1");ht.Add("C","1");ht.Add("Col","....");//endXElementroot=XElement.Parse(xml);//查询DATA元素节点XElementdataElem=root.Descendants("Data").FirstOrDefault();if(dataElem!=null){intcount=0;stringfirstKey="";foreach(KeyValuePair<string,string>iteminht){count++;stringkey=item.Key.ToString();stringval=item.Value.ToString();if(count==1){firstKey=key;dataElem.Add(newXElement(key));}else{XElementelem=dataElem.Descendants(firstKey).FirstOrDefault();elem.Add(newXAttribute(key,val));}}}//root.Save("某个磁盘文件");Console.WriteLine(root);/*<Message><Head><BizMsgID>3307</BizMsgID><ASID>AS100</ASID><AreaCode>3307</AreaCode></Head><Data><ZITA="1"B="1"C="1"Col="...."/></Data></Message>*/Console.ReadLine();}

自己去构造Dictionary对象,不解释
解决方案十二:
如果是SQLSERVER的话,可以直接产生XML了,可以在百度里谷歌一下SQLFORXML其他数据库不清楚
解决方案十三:
我个人觉得:楼主可以用XElement好像是System.xml.linq控件吧。忘记了。思路就是数据库数据-----XElement对象----调用他的Save()方法。最简单了。

时间: 2024-08-22 14:31:05

c# 把数据库的数据动态生成固定xml文件格式的(求求大神们的指导了)的相关文章

求助:用VB.net可以将数据动态生成图表(折线图、柱型图等)后插入word中吗?如何做??请大家帮忙!谢谢!!!

问题描述 求助:用VB.net可以将数据动态生成图表(折线图.柱型图等)后插入word中吗?如何做??请大家帮忙!谢谢!!! 解决方案 解决方案二:DimoXLAsWord.ApplicationDimoWDAsWord.Document'创建一个工作文档oWD=oXL.Documents.Add(Missing.Value)oWD=oXL.ActiveDocumentoWD.ActiveWindow.Selection.InlineShapes.AddPicture(imagepath)'垃圾

android/java 数据库中数据如何生成选择题

问题描述 android/java 数据库中数据如何生成选择题 现有数据库中数据形式是这样的:key 名字:translation 解释: 如何**随机**取出其中一条数据的key为题目,translation为一个正确选项,再取出另外3条数据的translation作为错误选项,生成选择题,并且正确选项会随机出现在ABCD任意位置? 哪位大神可以解答一下我的问题?提供一个思路...先谢谢啦~ 解决方案 首先获取随机题目:随机题目id可以使用这样获取int a=(int) (Math.rando

jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签_jquery

废话不多说了,直接给大家贴代码了,具体内容如下所示: // js <script type="text/javascript"> function myBtn_f() { var cnt = $('#myCnt').val(); syncAjax('myAjax.html', { 'cnt' : cnt }, function(result) { if (100 == result.statusCode) { var data = result.lst; var $d =

操作几万条,甚至几十万条数据导入导出 用什么方式比较好?除了数据库外,用NPOI好像不行,有没有大神操作过几十万条EXCEL数据的?

问题描述 操作几万条,甚至几十万条数据导入导出用什么方式比较好?(这里指的导入导出是数据导入到程序里,进行一些修改操作,然后再导出目前操作5000条数据是没问题的,但是超过1W条就报错了,)报了一个这样的错误:其他信息:Exception:WrongLocalheadersignature:0x5757575A我觉得应该是长度受限制了,但是又没有什么好的方法解决除了数据库外,用NPOI好像不行,有没有大神操作过几十万条EXCEL数据的?是怎么解决的求指教 解决方案 解决方案二:没人给回复呀?解决

memo 导入数据库-DEMO中的数据如何导入好TRzDBGrid 中。求大神指导

问题描述 DEMO中的数据如何导入好TRzDBGrid 中.求大神指导 DEMO中的数据如何导入到TRzDBGrid 中.求大神指导 memo中的数据 0,衣服,5,5 db数据库字段 idx Name Act LOok 代码改怎么写,求大神指导. 解决方案 求大神指导c++

基于s/c的数据库查询系统的设计 ,毕业论文的题目 ,理不清思路。麻烦各位大神给个指导

问题描述 基于s/c的数据库查询系统的设计 ,毕业论文的题目 ,理不清思路.麻烦各位大神给个指导 建立一个数据库,并查询,这个好办.但是一加前面的条件就不太明白了.s/c也大致了解,但是这两个要怎么联系到一起呢.好晕啊.我是急着写论文,这些知识只学了皮毛,问题描述如果那里说错了还请担待.我只求一个大体的思路.帮帮忙吧,各路大神们. 解决方案 其实也就是让一个程序是客户端,里面跑着TCP客户端的程序,然后通过TCP连接到你的一个TCP的服务器 这些TCP的程序在网上很多,如果就是想做个毕设可以直接

在vb.net中如何动态添加控件ovalshape(求大神帮帮小弟)

问题描述 在vb.net中如何动态添加控件ovalshape(求大神帮帮小弟) 控件button在vb.net中可以动态添加,但是ovalshape却不能,如:(button的动态添加) dim mybutton as new button ...... mybutton.text="" ..."" mybutton.location=new point() .... me.controls.add(mybutton) addhandler mybutton.cli

sql server-sqlserver插入数据,报执行存储过程错误,求大神科普

问题描述 sqlserver插入数据,报执行存储过程错误,求大神科普 解决方案 你数据库的表时怎么创建的? 解决方案二: USE [lmweb] GO /****** Object: Table [dbo].[visitip] Script Date: 10/09/2015 21:32:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].visitip NOT NULL, [ffromref

php-用PHP创建数据库表总是失败,代码如下,跪求大神。。

问题描述 用PHP创建数据库表总是失败,代码如下,跪求大神.. <?php$con = mysql_connect(""localhost""root""xxh2011010015"");if (!$con) { die('Could not connect: ' . mysql_error()); } // Create table in my_db databasemysql_select_db("&quo