RT,详细说就是,从本地读取一个XML文件,找出其中某个attribute的值,然后去数据库中搜索这个值对应的记录,然后输出成XML,最后,比较原始XML与生成XML中的值。先给100分满分,长时间没有登录,也不知道能否追加得分,如果可以的话,可以继续给符合要求的答案追加得分……

解决方案 »

  1.   

    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(新文件名);关于比较部分,你需要把问题在具体一点。
      

  2.   

    我会尽量把SQL查询语句的返回结果控制的和原始XML一致,只是单纯的比较每一个attribute的值。
    我最关心的是,如何才能把动态的值给传到Where语句中去……最好能附上详细的代码……原理什么的,我也知道些……
      

  3.   


    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();
    }
      

  4.   

    多谢回复,不过请看清楚要求哦,是把查询结果以XML格式给输出,似乎回复并没有实现这个……
      

  5.   

    “从本地读取一个XML文件,找出其中某个attribute的值,然后去数据库中搜索这个值对应的记录,然后输出成XML”,楼主,你这样只是输出一条记录啊????“最后,比较原始XML与生成XML中的值。”,两个文件大不一样,比较有意义吗?楼主,你是不是有什么特殊的需求,说说看
      

  6.   

    sqlserver2005以上版本支持xml格式
      

  7.   

    SQL Server 2005 XML 操作总结(五)元素(节点)操作——修改、删除、移动、遍历操作
      

  8.   


    没什么特殊需求啊,只不过原始是一个SOAP,我把它给保存为XML了,之后,去数据库,找出对应的那条记录,看看Web Service是不是正常处理了,至于都用XML,不过是为了方便而已……