Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;
using System.Linq;
using System.Windows.Shapes;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO.IsolatedStorage;
using System.IO;
using System.Xml.Linq;
using System.Xml;
namespace ServiceFacade
{

    public class FResourceCategoryCode
    {
       readonly string strFileName = "ResourceCategoryCode.xml";
        List<FResourceCategoryCodeModel> lfrccs = new List<FResourceCategoryCodeModel>();
/// <summary>
/// 生成XML缓存文件
/// </summary>
public void CreateFile(List<FResourceCategoryCodeModel> lfrccm)
{
try
{
using (IsolatedStorageFile isoStore =
IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream =
new IsolatedStorageFileStream(strFileName,
FileMode.Create, isoStore))
{
// 根据每个用户存储一个信息
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
// 创建一个XmlWriter.
using (XmlWriter writer = XmlWriter.Create(isoStream, settings))
{
//设置XML的根
writer.WriteStartElement("ResourceCategorys");
foreach (var v in lfrccm)
{
//设置每个元素的根
writer.WriteStartElement("ResourceCategory");

//以下为设置每个元素及值
writer.WriteStartElement("cncCategroyStandard");
writer.WriteString(v.CncCategroyStandard);
writer.WriteEndElement();

writer.WriteStartElement("cnvcCategoryCode");
writer.WriteString(v.CnvcCategoryCode);
writer.WriteEndElement();

writer.WriteStartElement("cnvcCategoryName");
writer.WriteString(v.CnvcCategoryName);
writer.WriteEndElement();

writer.WriteStartElement("cniLevel");
writer.WriteString(Convert.ToString(v.CniLevel));
writer.WriteEndElement();

writer.WriteStartElement("cnvcParentCode");
writer.WriteString(v.CnvcParentCode);
writer.WriteEndElement();

writer.WriteStartElement("cniOrderID");
writer.WriteString(Convert.ToString(v.CniOrderID));
writer.WriteEndElement();

//XML结束标记
writer.WriteEndElement();
}
//XML根结束标记
writer.WriteEndElement();
writer.Flush();
}
}
}
}
catch
{
;
}
}

/// <summary>
        /// 读取缓存文件
        /// </summary>
        private void ReadXml()
        {
            using (IsolatedStorageFile store =
                     IsolatedStorageFile.GetUserStoreForApplication())
            {
                //读取文件并把文件转化为StreamReader
                StreamReader reader = new StreamReader(store.OpenFile(strFileName,
                   FileMode.Open, FileAccess.Read));
                //把字符串转化为XML
                XDocument xmlStory = XDocument.Parse(reader.ReadToEnd());
                //利用LINQ TO XML转化为集合
               var varDetails = from details in xmlStory.Descendants("ResourceCategory")  //只取得节点为ResourceCategory的信息
                                 select new FResourceCategoryCodeModel
                                 {
                                     CncCategroyStandard = (string)details.Element("cncCategroyStandard"),
                                     CnvcCategoryCode = (string)details.Element("cnvcCategoryCode"),
                                     CnvcCategoryName = (string)details.Element("cnvcCategoryName"),
                                     CniLevel = (int)details.Element("cniLevel"),
                                     CniOrderID = (int)details.Element("cniOrderID"),
                                     CnvcParentCode = (string)details.Element("cnvcParentCode")
                                 };
                lfrccs = varDetails.ToList<FResourceCategoryCodeModel>();
                store.Dispose();
            }
        }

/// <summary>
        /// 实体类
        /// </summary>
  public class FResourceCategoryCodeModel
    {
        private int _cniCategroyID;
        /// <summary>
        /// 流水号
        /// </summary>
        public int CniCategroyID
        {
            get { return _cniCategroyID; }
            set { _cniCategroyID = value; }
        }
        private string _cncCategroyStandard;
        /// <summary>
        /// 标准分类编码
        /// </summary>
        public string CncCategroyStandard
        {
            get { return _cncCategroyStandard; }
            set { _cncCategroyStandard = value; }
        }
        private string _cnvcCategoryCode;
        /// <summary>
        /// 资源分类编码
        /// </summary>
        public string CnvcCategoryCode
        {
            get { return _cnvcCategoryCode; }
            set { _cnvcCategoryCode = value; }
        }
        private string _cnvcCategoryName;
        /// <summary>
        /// 资源分类名称
        /// </summary>
        public string CnvcCategoryName
        {
            get { return _cnvcCategoryName; }
            set { _cnvcCategoryName = value; }
        }
        private int _cniLevel;
        /// <summary>
        /// 资源分类层级
        /// </summary>
        public int CniLevel
        {
            get { return _cniLevel; }
            set { _cniLevel = value; }
        }
        private string _cnvcParentCode;
        /// <summary>
        /// 资源分类父级代码
        /// </summary>
        public string CnvcParentCode
        {
            get { return _cnvcParentCode; }
            set { _cnvcParentCode = value; }
        }
        private int _cniOrderID;
        /// <summary>
        /// 排序ID
        /// </summary>
        public int CniOrderID
        {
            get { return _cniOrderID; }
            set { _cniOrderID = value; }
        }
        private string _cnvcRemark;
        /// <summary>
        /// 说明文字
        /// </summary>
        public string CnvcRemark
        {
            get { return _cnvcRemark; }
            set { _cnvcRemark = value; }
        }
}
}
}

然后通过调用方法CreateFile和ReadXml就可以实现了,文件存放的地址是SL的独立空间,在XP系统下的存放地址为C:\Documents and Settings\用户名\Local Settings\Application Data\Microsoft\Silverlight目录下,可以找到很多缓存文件

文章转自:http://www.cnblogs.com/888h/archive/2010/10/20/1856407.html

Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML,布布扣,bubuko.com

时间: 2024-10-11 05:19:56

Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML的相关文章

js解析xml字符串或xml文件,将其转换为xml对象

注:判断是否是ie浏览器和非ie浏览器的方法有多种,在此只介绍用例中的方法: 1.解析xml字符串,得到xml对象的方式: function createXml(str){ if(document.all){//IE浏览器     var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");        xmlDoc.async = false;     xmlDoc.loadXML(str);     return xmlDoc; } el

如何在web.xml文件中引入其他的xml文件

最近在做一个Servlet+javaBean的项目,服务器用的是tomcat.因此,所有的页面都是servlet请求,而且很多,需要在web.xml文件中进行配置.导致web.xml文件特别大,而且这个系统以后会做大,并且会出现系统拆分,为了便于以后拆分,于是想到将web.xml文件中的servlet和servlet-mapping能够从web.xml脱离出来,用其他xml文件保存然后在web.xml文件中引入这些文件,就想类似引入struts.config一样.        在网上找了半天也

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据 XQuery 是一个浏览/返回XML实例的标准语言. 它比老的只能简单处理节点的XPath表达式更丰富. 你可以同XPath一样使用.或是遍历所有节点,塑造XML实例的返回等. 作为一个查询语言, 你需要一个查询处理引擎. SQL Server 数据库通过XML数据类型方法的T-SQL 语句来处理XQuery. SQL Server 并不支持所有的X

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message> <sms> <body> 陈驰0 </body> <date> 1462162910995 </date> <address> 1380 </address> <type> 1 </type> &

dom4j解析XML文件(2)—读取XML文件

Emp.xml: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <list> 3 <emp id="1"> 4 <name>张三</name> 5 <age>34</age> 6 <gender>男</gender> 7 <salary>3000</salary> 8 <

linux下使用libxml2实现对xml文件的读取及查询

由于项目需要,这两天在用C++做XML文件解析的工作.在linux下有个很方便的操作xml文件的库——libxml2,它提供了一套创建和查询xml文件的C语言的接口.这篇博客主要介绍如何使用libxml2读取并解析xml文件. 下载并安装libxml2 下载地址:ftp://xmlsoft.org/libxml2/ 下载最新的版本,我下载的是libxml2-2.9.1.tar.gz.下载后将文件解压到合适的位置,进入解压后的目录. 编译命令非常简单(注意:如果configure文件没有可执行权限

XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)

1.XML 格式规范: ① 必须有一个根元素 ② 不可有空格.不可以数字或.开头.大小写敏感 ③ 不可交叉嵌套 ④ 属性双引号(浏览器自动修正成双引号了) ⑤ 特殊符号要使用实体 ⑥ 注释和HTML一样 虽然可以描述和传输复杂数据,但是其解析过于复杂并且体积较大,所以实现开发已经很少使用了.   例: <?xml version="1.0" encoding="UTF-8"?> <root> <arrayList> <arr

XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历

XML文件:必须要有一个节点.检验xml文件,可以用浏览器打开,能打开表示对,否则错. 处理方法: DOM:XmlDocument文档对象模型 Sax(事件驱动,XmlReader) XmlSerializer(序列化):可以序列化一个类,一个泛型集合. Linq to XML:主要用到类:Xelement XDocument XAttribute    using System.Xml.Linq; 写一个XML文件: 学校,班级,学生(性别,年龄,年龄) 1 namespace W_R_XML

XML DTD约束 对xml文件的crud的查询Read Retrieve操作 xml递归遍历

本地的dtd文档 xml中引入dtd文档 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE 书架 SYSTEM "book.dtd"> <书架> <书> <书名>Java就业培训教程</书名> <作者>张孝祥</作者> <售价>39.00</售价> </书> <书