海南省BIM中心

 找回密码
 注册请加微信xycost

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2091|回复: 0

利用LINQ技术方便简洁的生成XML文档

[复制链接]

0

主题

2724

帖子

2579

积分

论坛游侠

Rank: 1

积分
2579
发表于 2009-4-2 21:32:00 | 显示全部楼层 |阅读模式
在.net 3.5版本之前,生成XML文档是比较麻烦的,必须先建立Xmldoucument文件,然后用AppendChildNode等方法来操作,费时费力。运用最新的LINQ TO XML技术,不费吹灰之力即可生成XML,过程简单到你都不再相信自己的眼睛吧。下面就是一段演示动态生成网站的sitemap文件,为本网站心云图片中的一段代码:
  1. protected void btnUpload1_Click(object sender, EventArgs e)//生成站点地图
  2. {
  3. string xmlFile=MapPath("~/App_Data/ImageCategory.xml");
  4. string newXmlFile=MapPath("~/App_Data/ImageCategory.sitemap");
  5. XDocument doc=XDocument.Load(xmlFile);
  6. string connectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=") + MapPath("~/App_Data/Image.mdb");
  7. string sqltext = @"SELECT * FROM [Image] ";
  8. OleDbDataAdapter ImageAdapter = new OleDbDataAdapter(sqltext, connectionString);
  9. DataSet ImageDS=new DataSet();
  10. ImageAdapter.Fill(ImageDS, "Image");
  11. ArrayList categorys=new ArrayList();

  12. foreach(XElement element in doc.Element("Categorys").Elements())
  13. {
  14. if ((string)element.Attribute("Text") == "首页")
  15. continue;
  16. string category =(string)element.Attribute("Text");
  17. DataRow[] ImageRows=ImageDS.Tables["Image"].Select("CategoryName='"+category+"'");
  18. ArrayList images=new ArrayList();
  19. foreach(DataRow ImageRow in ImageRows)
  20. images.Add(new XElement("siteMapNode",new XAttribute("url","GetImage.aspx?Photo="+ImageRow["ImageID"].ToString()),
  21. new XAttribute("title",ImageRow["Title"].ToString())));
  22. categorys.Add(new XElement("siteMapNode",new XAttribute("url","ShowImage.aspx?CategoryName="+(string)element.Attribute ("Text")),
  23. new XAttribute("title",(string)element.Attribute("Text")), images.ToArray(typeof(XElement))));
  24. }
  25. XElement rootelement = new XElement("siteMapNode",new XAttribute("url","Default.aspx"), new XAttribute("title","首页"),categorys.ToArray(typeof(XElement)));
  26. XDocument newDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XElement("{[url]http://schemas.microsoft.com/AspNet/SiteMap-File-1.0[/url]}siteMap",rootelement));
  27. newDoc.Save(newXmlFile);
  28. ASPxLabel5.Text = "已成功生成图片站点地图";
  29. }
复制代码
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /2 下一条


QQ|小黑屋|手机版|Archiver|ChinaBIM ( 琼ICP备14001050号-1 )

GMT+8, 2024-4-26 23:12 , Processed in 0.023770 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表