// Silverlight中的独立存储是其内部的可信任的可访问文件空间,在这里你可以使用Silverlight随意的创建、读取、写入、删除目录和文件,它有一些类似于Cookie,但是它可以在客户端保存大量的数据。这个空间默认是1M,如果不够的时候可以申请扩大容量。

private void PopulateWithData()
        {
            #region update by zxh

List<decichain> lst = Session.ChainLst.Where(m => m.OrgID.ToString() == orgid).ToList();

using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
            {
                #region 动态生成XML文件

using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("IsoStoreFile.xml", FileMode.Create, isoStore))
                {
                    XmlWriterSettings settings = new XmlWriterSettings();
                    settings.Indent = true;

using (XmlWriter writer = XmlWriter.Create(isoStream, settings))
                    {
                        //写xml文件开始<?xml version="1.0" encoding="utf-8" ?>
                        writer.WriteStartDocument(false);
                        //写根节点
                        writer.WriteStartElement("Root");

foreach (decichain chain in lst.Where(m => m.UpDeci == -1).ToList())
                        {
                            writer.WriteStartElement("Node");
                            writer.WriteAttributeString("Name", chain.Name);
                            writer.WriteAttributeString("Email", chain.Email);
                            writer.WriteAttributeString("Phone", chain.Phone);
                            writer.WriteAttributeString("Position", chain.Position1);
                            writer.WriteAttributeString("Branch", chain.Branch);
                            writer.WriteAttributeString("ImgName", chain.ImgName);

AddChildrenNode(lst.Where(m => m.UpDeci == chain.ID).ToList(), writer);

//将此新节点添加到根节点下
                            writer.WriteEndElement();
                        }
                        writer.WriteEndElement();

writer.Flush();
                    }
                }

#endregion

using (StreamReader reader = new StreamReader(isoStore.OpenFile("IsoStoreFile.xml", FileMode.Open)))
                {
                    XElement dataXml = XElement.Load(reader);

foreach (XElement element in dataXml.Elements("Node"))
                    {
                        Node node = this.CreateNode(element);
                        node.Children.AddRange(this.GetSubNodes(element));
                        this.HierarchicalDataSource.Add(node);
                    }
                }
            }

#endregion
        }

private void AddChildrenNode(List<decichain> Lst, XmlWriter writer)
        {
            foreach (decichain chain in Lst)
            {
                writer.WriteStartElement("Node");
                writer.WriteAttributeString("Name", chain.Name);
                writer.WriteAttributeString("Email", chain.Email);
                writer.WriteAttributeString("Phone", chain.Phone);
                writer.WriteAttributeString("Position", chain.Position1);
                writer.WriteAttributeString("Branch", chain.Branch);
                writer.WriteAttributeString("ImgName", chain.ImgName);

AddChildrenNode(Session.ChainLst.Where(m => m.UpDeci == chain.ID).ToList(), writer);

//将此新节点添加到根节点下
                writer.WriteEndElement();
            }
        }

private ObservableCollection<HierarchicalNodeViewModel> GetSubNodes(XContainer element)
        {
            var nodes = new ObservableCollection<HierarchicalNodeViewModel>();
            foreach (var subElement in element.Elements("Node"))
            {
                var node = this.CreateNode(subElement);
                node.Children.AddRange(this.GetSubNodes(subElement));
                nodes.Add(node);
            }

return nodes;
        }

private Node CreateNode(XElement element)
        {
            Node node = new Node();
            node.PropertyChanged += this.Node_PropertyChanged;
            node.Name = element.Attribute("Name").Value;
            node.Phone = element.Attribute("Phone").Value;
            node.Email = element.Attribute("Email").Value;
            node.ImagePath = "/Pics/" + element.Attribute("ImgName").Value;
            node.JobPosition = element.Attribute("Position").Value;
            node.Branch = (Branch)Enum.Parse(typeof(Branch), element.Attribute("Branch").Value, true);
            return node;
        }

silverlight 从数据库获取到数据,动态生成XMLWEN文件,并获取文件进行操作的更多相关文章

  1. 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图

    如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?

  2. cglib根据数据动态生成对象

    最近有个任务:根据查询SQL直接导出报表 实现关键是,怎么根据sql查询的数据动态生成对象列表,想到Cglib动态代理实现 废话少说,上代码: 定义动态生成Java Bean类: import jav ...

  3. File操作-将数据库里的数据写入到指定路径的txt文件里

    package com.Cristin.File;//将数据库里的数据写入到指定路径的txt文件里 import java.io.File;import java.io.FileOutputStrea ...

  4. jsp页面根据json数据动态生成table

    根据需求由于不同的表要在同一个jsp展示,点击某个表名便显示某张表内容,对于java后台传给jsp页面的json形式的数据是怎么动态生成table的呢? 找了好久,终于找到某位前辈的答案,在此表示衷心 ...

  5. AJAX请求返回JSON数据动态生成html

    1:DeliveryPersonVO对象 package com.funcanteen.business.entity.delivery.vo; import java.util.List; impo ...

  6. 收集 数据库的awr数据,生成报告

    该脚本只是把awr报告的内容,原封不动的 展现出来,做记录 awrreport.sql  脚本内容如下: *********************************************** ...

  7. js将json数据动态生成表格

    今天开发中遇到需要展示动态数据的问题, 具体要求是后端传来的json字符串,要在前端页面以table表格的形式展示, 其实没啥难的,就是拼接table标签,纯属体力活,于是自己写了个呆萌,保存起来,以 ...

  8. Rss 订阅:php动态生成xml格式的rss文件

    Rss 简介: 简易信息聚合(也 叫聚合内容)是一种描述和同步网站内容的格式.使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新.网络用户可以在客户端借助于支持RS ...

  9. Winfrom treeview 如何从多个数据表中获取数据动态生成

    本文转载:http://www.cnblogs.com/VincentLuo/archive/2008/03/29/1128987.html 在 汪洋怡舟的这篇文章中[http://www.cnblo ...

随机推荐

  1. 《hello--world团队》第一次作业:团队亮相

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验五 团队作业:软件研发团队组建 团队名称 <hello--world团队> ...

  2. 【Linux】grep命令

    grep 命令 在文件中搜索一个单词,命令会返回一个包含 “match_pattern” 的文本行: grep match_pattern file_name grep "match_pat ...

  3. Fortran程序调试中的“吐核”错误

    在CentOS7上安装了PGI编译器,但是调试过程中遇到的“段错误(吐核)”一直让人很头疼. 通常采用在程序中增加屏幕输出代码的方式来追踪和定位出错的变量,比如下面这个样例程序就在第16行和第18行增 ...

  4. Factorial(hdu 1124)

    Description The most important part of a GSM network is so called Base Transceiver Station (BTS). Th ...

  5. 编译安装LAMP

    编译安装MariaDB 创建MariaDB安装目录.数据库存放目录.建立用户和目录 先创建一个名为mysql且没有登录权限的用户和一个名为mysql的用户组,然后安装mysql所需的依赖库和依赖包,最 ...

  6. spring boot读取classpath下的json文件

    import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resour ...

  7. 实训任务02:Hadoop基础操作

    实训任务02:Hadoop基础操作 班级            学号               姓名 实训1:创建测试文件上传HDFS,并显示内容 需求说明: 在本地计算机上创建测试文件helloH ...

  8. BUAAOO第二单元总结之电梯问题

    ---恢复内容开始--- Homework1 傻瓜电梯 程序架构 第一次题目非常简单,思考也非常简单,一部电梯傻瓜调度.将命令入公共的队列,电梯从公共队列中取命令即可,其中只需要使用ArrayBloc ...

  9. java 反射与其应用

    前言: 目标:对于我个人而言 我希望能由以下途径达到最终目标  清楚反射的概念以及为什么要用反射技术 -> java的反射技术 -> java反射技术涉及到的类 -> java反射技 ...

  10. Spring 基础知识(一)基本概念 DI、IOC、AOP

    DI(依赖注入) 和IOC(控制反转)都是一种设计思想,要理解他们,让我们从coding中的一些痛点入手. 依赖注入 Dependency Injection : 如果A类要使用B类的一个方法,首先必 ...