asp.net(c#) 保存xml数据(将数据写入到xml文件中)解决办法

asp.net(c#) 保存xml数据(将数据写入到xml文件中)
<?xml version="1.0" encoding="utf-8"?>
<bcaster>
  <item item_url="images/nei1_03.gif" link="http://www.baidu.com" />
  <item item_url="images/nei1_03.gif" link="http://www.baidu.com" />
</bcaster>
要像这种格式的

item_url和link的值都是从数据库读的

各位高手帮下忙!

------解决方案--------------------
XMLDOCUMENT 就可以解决了
------解决方案--------------------
用XmlDocument.Save(这里是Stream或者XmlWriter),就可以保存了。
------解决方案--------------------
可以先通过datatable 
C# code

private   string   strconn="Provider=SQLOLEDB.1;User   ID=sa;password=;Initial   Catalog=通信录;Data   Source=lhz";   
  public   OleDbConnection   cn   =   new   OleDbConnection();               
  public   OleDbCommand   cm   =   new   OleDbCommand()   ;   
  private   OleDbDataAdapter   da   =   new   OleDbDataAdapter();   
  Xml     XMLFile1=new   Xml();   
  cn.ConnectionString=strconn;   
  cm.Connection=cn;   
  cm.CommandText="select   CustID,CustName,QQ,Email   from   tongxin";   
  da.SelectCommand=cm;   
  DataSet   ds=new   DataSet();   
  da.Fill(ds,"tongxin");   
  try   
  {   
  ds.WriteXml(Request.MapPath(XMLFile1.xml));   
  }   
  catch(Exception)   
  {   
  }   
  finally   
  {   
  DataGrid1.DataSource=ds;   
  DataGrid1.DataBind();   
  }

------解决方案--------------------
将数据读取到dataset里
然后循环插入XML
------解决方案--------------------
xmltextwriter,可以writestartdoc,writesttartelement,writevalue,
先写跟节点,然后写子节点,然后关闭写子节点,关闭写根节点
------解决方案--------------------
//声明一个XmlDocument空对象
protected XmlDocument XmlDoc = new XmlDocument();

/// <summary>
/// 构造函数,导入Xml文件
/// </summary>
/// <param name="xmlFile">文件虚拟路径</param>
public XmlOp(string xmlFile)
{
try
{
XmlDoc.Load(GetXmlFilePath(xmlFile)); //载入Xml文档
}
catch (System.Exception ex)
{
throw ex;
}
}
/// <summary>
/// 析构函数
/// </summary>
~XmlOp()
{
XmlDoc = null; //释放XmlDocument对象
}

/// <summary>
/// 保存文件
/// </summary>
/// <param name="filePath">文件虚拟路径</param>
public void Save(string filePath)
{
try
{
XmlDoc.Save(GetXmlFilePath(filePath));
}
catch (System.Exception ex)
{
throw ex;
}
}

/// <summary>
/// 返回Xml文件实际路径
/// </summary>
/// <param name="xmlFile">文件虚拟路径</param>
/// <returns></returns>
public string GetXmlFilePath(string xmlFile)
{
return HttpContext.Current.Server.MapPath(xmlFile);
}

/// <summary>
/// 根据Xml文件的节点路径,返回一个DataSet数据集
/// </summary>
/// <param name="XmlPathNode">Xml文件的某个节点</param>
/// <returns></returns>
public DataSet GetDs(string XmlPathNode)
{
DataSet ds = new DataSet();
try
{