XML与dataset里相互读取操作
从一个XML里读出来数据,然后更改后在写进另一个XML
public void newXml()
{
DataTable dt = new DataTable();
dt = CommerCityMessageBLL.getThisCommerCityMessage(Convert.ToInt32(Request.QueryString["CommerCityID"].ToString().Trim()));
if (dt.Rows.Count > 0)
{
string path2 = "";
string path1 = "";
path2 = Server.MapPath("http://www.cnblogs.com/xml/shopCityXml/" + Request.QueryString["CommerCityID"].ToString().Trim() + "shopCity.xml");
if (!System.IO.File.Exists(path2))
{
FileStream stream;
stream = System.IO.File.Create(path2);
stream.Close();
DataSet xmlDS1 = new DataSet();
XmlTextReader reader = null;
if (dt.Rows[0]["CommerCityType"].ToString().Trim() == "superMarket")
{
path1 = Server.MapPath("http://www.cnblogs.com/xml/superMarket.xml");
}
else
{
path1 = Server.MapPath("http://www.cnblogs.com/xml/Alliance.xml");
}
//从XML里读入数据到数据集
reader = new XmlTextReader(path1);
xmlDS1 = new DataSet();
xmlDS1.ReadXml(reader);
XmlTextWriter writer = new XmlTextWriter(path2, Encoding.UTF8);
//开始写
writer.WriteStartDocument();
writer.WriteStartElement("adXMLPath");
for (int a = 0; a < xmlDS1.Tables[0].Rows.Count; a++)
{
writer.WriteStartElement("adItem");
writer.WriteElementString("ID", xmlDS1.Tables[0].Rows[a]["ID"].ToString());
writer.WriteElementString("type", xmlDS1.Tables[0].Rows[a]["type"].ToString());
writer.WriteElementString("title", xmlDS1.Tables[0].Rows[a]["title"].ToString());
writer.WriteStartElement("url");
writer.WriteCData(xmlDS1.Tables[0].Rows[a]["url"].ToString());
writer.WriteEndElement();
writer.WriteStartElement("imgUrl");
writer.WriteCData(xmlDS1.Tables[0].Rows[a]["imgUrl"].ToString());
writer.WriteEndElement();
writer.WriteStartElement("directions");
writer.WriteCData(xmlDS1.Tables[0].Rows[a]["directions"].ToString());
writer.WriteEndElement();
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}
}
}
本人博客的文章大部分来自网络转载,因为时间的关系,没有写明转载出处和作者。所以在些郑重的说明:文章只限交流,版权归作者。谢谢