Windows phone 之Xml操作
最近在做天气预报应用,这个应用中需要用到Xml来存储关注的城市列表,保存一下代码,方便以后使用,也给博友们一个参考:
其中:添加关注城市的操作代码是:
其实就是,
(1)先把数据从CareCityCode.xml文档中查询出来,放在集合A中,然后删除该文档。
(2)把新关注的城市添加到集合A中,
(3)把集合A中的数据再新建一个CareCityCode.xml,保存到该xml文档中。
#region 获取关注城市ID列表 --GetCareCityList /// <summary> /// 获取关注城市ID列表 /// </summary> /// <returns></returns> public static ObservableCollection<City> GetCareCityList() { ObservableCollection<City> list = new ObservableCollection<City>(); using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) { if (isf.FileExists("CareCityCode.xml")) { using (IsolatedStorageFileStream isoStream = isf.OpenFile("CareCityCode.xml", FileMode.Open, FileAccess.Read)) { XElement xel = XElement.Load(isoStream); //MessageBox.Show("Xml文档的数据"+xel.ToString()); var citys = from city in xel.Descendants("CityCode") //orderby "DateTime" descending select city; foreach (var city in citys) { list.Add(new City { CityID = city.Element("ID").Value , CityName=city.Element("Name").Value}); } } } } return list; } #endregion
#region 添加关注城市ID --AddCareCity /// <summary> /// 添加关注城市ID /// </summary> /// <param name="CityID"></param> public static void AddCareCity(string CityID,string CityName) { using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) { if (isf.FileExists("CareCityCode.xml")) { ObservableCollection<City> list = GetCareCityList(); //判断添加的要关注的城市是否已经存在 foreach (var City in list) { if (City.CityID == CityID) { MessageBox.Show("已在关注列表中!"); return; } } list.Add(new City() { CityID=CityID, CityName=CityName}); isf.DeleteFile("CareCityCode.xml"); using (IsolatedStorageFileStream isoStream = isf.OpenFile("CareCityCode.xml", FileMode.OpenOrCreate, FileAccess.Write)) { XDocument doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XElement("CityCodes")); foreach (City temp in list) { doc.Element("CityCodes").Add(new XElement("CityCode", new XElement("ID", temp.CityID), new XElement("Name",temp.CityName))); } MessageBox.Show(doc.ToString()); doc.Save(isoStream); } } else { using (IsolatedStorageFileStream isoStream = isf.OpenFile("CareCityCode.xml", FileMode.OpenOrCreate, FileAccess.Write)) { XElement xel = new XElement("CityCodes", new XElement("CityCode", new XElement("ID", CityID), new XElement("Name",CityName)) ); XDocument doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), xel); doc.Save(isoStream); MessageBox.Show(doc.ToString()); } } } } #endregion
删除代码:明天再贴,
而且我感觉这种方法很麻烦的,,,稍后会介绍一种比较简单的方法。
Windows phone 之Xml操作的更多相关文章
- 我也来学着写写WINDOWS服务-解析xml抓取数据并插入数据库
项目告一段落,快到一年时间开发了两个系统,一个客户已经在试用,一个进入客户测试阶段,中间突然被项目经理(更喜欢叫他W工)分派一个每隔两小时用windows服务去抓取客户提供的外网xml,解析该xml, ...
- C#:XML操作类
写的一个XML操作类,包括读取/插入/修改/删除. using System; using System.Data; using System.Configuration; using System. ...
- LINQ系列:LINQ to XML操作
LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...
- T-Sql(五)xml操作
t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...
- XML格式示例 与 XML操作(读取)类封装
header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...
- 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...
- 简单的XML操作类
/// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...
- .net学习笔记---xml操作及读写
一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...
- C#常用操作类库三(XML操作类)
/// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...
随机推荐
- vijosP1038 添加括号
vijosP1038 添加括号 链接:https://vijos.org/p/1038 [思路] 区间DP. 本题的关键在于如何输出解.对于求和表达式而言可以用一个p[][]记录决策然后递归输出,对于 ...
- POJ 3666 Making the Grade (DP滚动数组)
题意:农夫约翰想修一条尽量平缓的路,路的每一段海拔是A[i],修理后是B[i],花费|A[i] – B[i]|,求最小花费.(数据有问题,代码只是单调递增的情况) #include <stdio ...
- 《神经网络和深度学习》系列文章三:sigmoid神经元
出处: Michael Nielsen的<Neural Network and Deep Leraning>,点击末尾“阅读原文”即可查看英文原文. 本节译者:哈工大SCIR硕士生 徐伟 ...
- Java中的三目运算符 详解
对于有些选择分支结构,可以使用简单的条件运算符来代替. 如: if(a<b) min=a;else min=b; 可以用下面的条件运算符来处理 min=(a<b)?a:b; 其 ...
- jetty之建立多Connector
转自:http://blog.csdn.net/kongxx/article/details/7218787 在嵌入运行Jetty的时候,有时候想要启动两个端口,或者通过一个Jetty server提 ...
- 获取手机root的方法
- win8笔记本无法搜索wifi信号找不到WLAN该 wifi共享特别注意的服务
WlansvcWLAN AutoConfigWLANSVC 服务提供配置.发现.连接.断开与 IEEE 802.11 标准定义的无线局域网(WLAN)的连接所需的逻辑.它还包含将计算机变成软件访问点的 ...
- 【剑指Offer学习】【面试题40:数组中仅仅出现一次的数字】
题目:一个整型数组里除了两个数字之外.其它的数字都出现了两次,请敲代码找出这两个仅仅出现一次的数字. 要求时间复杂度是O(n),空间复杂度是O(1). 举例说明 比如输入数组{2, 4, 3, 6, ...
- POJ 1006 Biorhythms(中国剩余定理)
题目地址:POJ 1006 学习了下中国剩余定理.參考的该博客.博客戳这里. 中国剩余定理的求解方法: 假如说x%c1=m1,x%c2=m2,x%c3=m3.那么能够设三个数R1,R2,R3.R1为c ...
- verview of Spring Framework--转
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html 2. Introduct ...