如何将SQL Server中对应某个XML中的某个attribute的Record给输出成XML?

lotuis 2011-08-31 03:57:28
RT,详细说就是,从本地读取一个XML文件,找出其中某个attribute的值,然后去数据库中搜索这个值对应的记录,然后输出成XML,最后,比较原始XML与生成XML中的值。

先给100分满分,长时间没有登录,也不知道能否追加得分,如果可以的话,可以继续给符合要求的答案追加得分……
...全文
104 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LMAOhuaNL 2011-09-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ssp2009 的回复:]

SQL Server 2005 XML 操作总结(五)元素(节点)操作——修改、删除、移动、遍历操作
[/Quote]
这里面很详细
lotuis 2011-09-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sdl2005lyx 的回复:]

“从本地读取一个XML文件,找出其中某个attribute的值,然后去数据库中搜索这个值对应的记录,然后输出成XML”,楼主,你这样只是输出一条记录啊????

“最后,比较原始XML与生成XML中的值。”,两个文件大不一样,比较有意义吗?

楼主,你是不是有什么特殊的需求,说说看。。。
[/Quote]

没什么特殊需求啊,只不过原始是一个SOAP,我把它给保存为XML了,之后,去数据库,找出对应的那条记录,看看Web Service是不是正常处理了,至于都用XML,不过是为了方便而已……
萧炎 2011-09-02
  • 打赏
  • 举报
回复
糊涂了LZ 帮顶 不是很清楚
快溜 2011-09-02
  • 打赏
  • 举报
回复
sqlserver2005以上版本支持xml格式
sdl2005lyx 2011-09-02
  • 打赏
  • 举报
回复
“从本地读取一个XML文件,找出其中某个attribute的值,然后去数据库中搜索这个值对应的记录,然后输出成XML”,楼主,你这样只是输出一条记录啊????

“最后,比较原始XML与生成XML中的值。”,两个文件大不一样,比较有意义吗?

楼主,你是不是有什么特殊的需求,说说看。。。

lotuis 2011-09-01
  • 打赏
  • 举报
回复
多谢回复,不过请看清楚要求哦,是把查询结果以XML格式给输出,似乎回复并没有实现这个……
ShiningstarHu 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lotuis 的回复:]

我会尽量把SQL查询语句的返回结果控制的和原始XML一致,只是单纯的比较每一个attribute的值。
我最关心的是,如何才能把动态的值给传到Where语句中去……

最好能附上详细的代码……原理什么的,我也知道些……
[/Quote]

var xdoc = XElement.Load(原始XML文件路径);
var attr = xdoc.Element("root").Attribute("attr1").value;

using(var cn = new SqlConnection())
using(var cmd = new SqlCommand())
{
cmd.CommandText = "Select * from your table WHERE field ='" + attr + "'";
var reader = cmd.ExecuteReader();
}
lotuis 2011-08-31
  • 打赏
  • 举报
回复
我会尽量把SQL查询语句的返回结果控制的和原始XML一致,只是单纯的比较每一个attribute的值。
我最关心的是,如何才能把动态的值给传到Where语句中去……

最好能附上详细的代码……原理什么的,我也知道些……
ShiningstarHu 2011-08-31
  • 打赏
  • 举报
回复
var xdoc = XElement.Load(原始XML文件路径);
var attr = xdoc.Element("root").Attribute("attr1").value;

//使用attr获得的值进行数据库查询。
//.....(代码略)

//这里假设你数据返回的记录在DataReader里面。
生成新的XML方法

var newXDoc = new XElement("root")
newXDoc.Add(new XAttribute("attr", reader.GetString(0)));
newXDoc.Save(新文件名);

上面代码可以简略成:

new XElement("root",new XAttribute("attr", reader.GetString(0))).Save(新文件名);

关于比较部分,你需要把问题在具体一点。


zjq8888882009 2011-08-31
  • 打赏
  • 举报
回复
up up up

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧