xml文件读写
创建xml文件,对xml文件进行添加新节点、删除节点、更新节点。创建的如下的xml文件。
<?xml version="1.0" encoding="UTF-8"?> -<FileItems> -<FileInfo fileid="12jdkfjdkfkdfjkdfj"> <FileName>test.txt</FileName> <last_seen>-- :</last_seen> <pushFileStaus>完成</pushFileStaus> <ActionType>上传</ActionType> <logFilePath>C: est.txt</logFilePath> <SavedSize></SavedSize> <localFilePath>C: est.txt</localFilePath> <HostIP>172.19.8.121</HostIP> <Port></Port> </FileInfo>
对xml文件进行查找,可以使用using System.Xml.Linq;命名空间中的XElement(XName)类,使用myXElement.Elements().Where(node => node.Attribute("fileid").Value == "12jdkfjdkfkdfjkdfj");其中myXElement是XElement的实例对象、fileid是xml节点属性名,“12jdkfjdkfkdfjkdfj”是属性的值。
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
string FullPath = string.Format(@"{0}\{1}\{2}", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "FilePulla", "history.xml");
/// <summary>
/// 创建xml文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, RoutedEventArgs e)
{
FileInfo xmlFile= new FileInfo(FullPath);
XmlTextWriter xmlWriter = new XmlTextWriter(xmlFile.FullName, Encoding.UTF8);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("FileItems"); xmlWriter.WriteStartElement("FileInfo");
xmlWriter.WriteAttributeString("fileid", "12jdkfjdkfkdfjkdfj");
xmlWriter.WriteElementString("FileName", "test.txt");
xmlWriter.WriteElementString("last_seen", "2014-06-09 10:30");
xmlWriter.WriteElementString("pushFileStaus", "完成");
xmlWriter.WriteElementString("ActionType", "上传");
xmlWriter.WriteElementString("logFilePath", "C:\test.txt");
xmlWriter.WriteElementString("SavedSize", "");
xmlWriter.WriteElementString("localFilePath", "C:\test.txt");
xmlWriter.WriteElementString("HostIP", "172.19.8.121");
xmlWriter.WriteElementString("Port", "");
xmlWriter.WriteEndElement(); ////////////////////////////////////////////////////////////////////
xmlWriter.WriteStartElement("FileInfo");
xmlWriter.WriteAttributeString("fileid", "12jdkfjdkfkdfjkdfj");
xmlWriter.WriteElementString("FileName", "test.txt");
xmlWriter.WriteElementString("last_seen", "2014-06-09 10:30");
xmlWriter.WriteElementString("pushFileStaus", "完成");
xmlWriter.WriteElementString("ActionType", "上传");
xmlWriter.WriteElementString("logFilePath", "C:\test.txt");
xmlWriter.WriteElementString("SavedSize", "");
xmlWriter.WriteElementString("localFilePath", "C:\test.txt");
xmlWriter.WriteElementString("HostIP", "172.19.8.121");
xmlWriter.WriteElementString("Port", "");
xmlWriter.WriteEndElement(); xmlWriter.WriteFullEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close(); }
/// <summary>
/// 在已存在的文件上,添加新节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, RoutedEventArgs e)
{
if (File.Exists(FullPath))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullPath);
XmlNode root = xmlDoc.SelectSingleNode("FileItems");
//查找<bookstore>
XmlElement element = xmlDoc.CreateElement("FileInfo");
element.SetAttribute("fileid", "12jdkfjdkfkdfjkdfjere"); XmlElement xesub1 = xmlDoc.CreateElement("FileName");
xesub1.InnerText = "test.txt";
element.AppendChild(xesub1);
//设置文本节点
XmlElement xesub10 = xmlDoc.CreateElement("last_seen");
xesub10.InnerText = "2014-06-09 11:35";
element.AppendChild(xesub10); XmlElement xesub2 = xmlDoc.CreateElement("pushFileStaus");
xesub2.InnerText = "test.txt";
element.AppendChild(xesub2);
XmlElement xesub3 = xmlDoc.CreateElement("ActionType");
xesub3.InnerText = "test.txt";
element.AppendChild(xesub3);
XmlElement xesub4 = xmlDoc.CreateElement("logFilePath");
xesub4.InnerText = "test.txt";
element.AppendChild(xesub4);
XmlElement xesub5 = xmlDoc.CreateElement("SavedSize");
xesub5.InnerText = "test.txt";
element.AppendChild(xesub5);
XmlElement xesub6 = xmlDoc.CreateElement("localFilePath");
xesub6.InnerText = "test.txt";
element.AppendChild(xesub6);
XmlElement xesub7 = xmlDoc.CreateElement("HostIP");
xesub7.InnerText = "test.txt";
element.AppendChild(xesub7);
XmlElement xesub8 = xmlDoc.CreateElement("HostIP");
xesub8.InnerText = "test.txt";
element.AppendChild(xesub8);
XmlElement xesub9 = xmlDoc.CreateElement("Port");
xesub9.InnerText = "test.txt";
element.AppendChild(xesub9);
root.AppendChild(element);
xmlDoc.Save(FullPath);
} }
/// <summary>
/// 删除节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, RoutedEventArgs e)
{
XElement xmlDoc = XElement.Load(FullPath);
XElement selectedElement = xmlDoc.Elements().Where(xl => xl.Attribute("fileid").Value == "12jdkfjdkfkdfjkdfjere").FirstOrDefault();
if (selectedElement == null) return;
selectedElement.Remove();
xmlDoc.Save(FullPath);
}
/// <summary>
/// 修改节点的值
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button5_Click(object sender, RoutedEventArgs e)
{
XElement xmlDoc = XElement.Load(FullPath);
XElement selectedElement = xmlDoc.Elements().Where(xl => xl.Attribute("fileid").Value == "12jdkfjdkfkdfjkdfjere").FirstOrDefault();
if (selectedElement == null) return;
selectedElement.Elements("pushFileStaus").FirstOrDefault().SetValue("完成");
xmlDoc.Save(FullPath);
}
}
xml文件读写的更多相关文章
- 实现动态的XML文件读写操作
实现动态的XML文件读写操作(依然带干货) 前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义 ...
- QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写 ...
- 实现动态的XML文件读写操作(依然带干货)
前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义好XML文件的格式就不太现实了,如何实现不管 ...
- 爪哇国新游记之十三----XML文件读写
/** * XML读写示例 * @author hx * */ public class XmlReaderWriter{ /** * 读取一个XML文件,返回一个雇员链表 * @param file ...
- Java中的的XML文件读写
XML简介 要理解XML,HTML等格式,先来理解文档对象模型DOM 根据 DOM,HTML 文档中的每个成分都是一个节点,这些节点组成了一棵树.DOM 是这样规定的:整个文档是一个文档节点每个 HT ...
- Java中的的XML文件读写与DOM
XML简介 要理解XML,HTML等格式,先来理解文档对象模型DOM 根据 DOM,HTML 文档中的每个成分都是一个节点,这些节点组成了一棵树.DOM 是这样规定的:整个文档是一个文档节点每个 HT ...
- (Unity)XML文件读写与IO文件操作类使用介绍
using System.Xml; //xml文件操作命名空间 #region 写入操作 void WriteXMLFile(string _fileName) { Xm ...
- XML文件读写编码不是UTF-8的问题
FileWriter和FileReader在写.读文件时,使用系统当前默认的编码方式. 在中文win下encoding基本是GB2312,在英文win下基本是ISO-8859-1.所以要创建一个UTF ...
- Qt之QDomDocument操作xml文件-模拟ini文件存储
一.背景 不得不说Qt是一个很强大的类库,不管是做项目还是做产品,Qt自身封装的东西就已经非常全面了,我们今天的这篇文章就是模拟了Qt读写ini文件的一个操作,当然是由于一些外力原因,我们决定自己来完 ...
随机推荐
- C语言内存对齐详解(3)
接上一篇:C语言内存对齐详解(2) 在minix的stdarg.h文件中,定义了如下一个宏: /* Amount of space required in an argument list for a ...
- 利用LineRenderer画出一个圆,类似于lol中的攻击范围
http://www.unity蛮牛.com/blog-5945-1409.html 本人大四狗,学unity半年有余,写此文章纯粹记录自己的心得. 废话不多说,进入主题.... 效果如图: 首先要理 ...
- 搭建自己的ngrok服务
转载:http://tonybai.com/2015/03/14/selfhost-ngrok-service/ 在国内开发微信公众号.企业号以及做前端开发的朋友想必对ngrok都不陌生吧,就目前来看 ...
- 配置caffe的python环境时make pycaffe提示fatal error: numpy/arrayobject.h No such file or directory解决方法
重装numpy: sudo pip uninstall numpy sudo pip install numpy 是没有用的... 解决的办法就是: sudo apt-get install pyth ...
- python 下载文件 & 防盗链
偶然下载一种类型的资源,发现好多翻页,右键另存什么的,不胜其烦. 决定用python写几句代码搞定.核心代码如下: from urllib import urlretrieve from urllib ...
- 【SpringMVC】SpringMVC系列1之HelloWorld
SpringMVC之HelloWorld 概述 SpringMVC 是基于 MVC 设计理念的优秀Web 框架,是目前最主流的 MVC 框架之一.Spring3.0 后全面超越 Struts2,成为最 ...
- TFS和VSS的简单对比
概念: TFS:Team Foundation Server(通常记作“TFS”) 是一种为 Microsoft 产品提供 源代码管理. 数据收集. 报告和项目跟踪,而为协作 软件开发 的项目. 可作 ...
- VIM替换、截取及追加操作
参考: http://blog.csdn.net/love__coder/article/details/6739670 http://blog.csdn.net/love__coder/articl ...
- JavaScript toFixed()使用的注意事项
以下是w3school的定义: 定义和用法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 语法 NumberObject.toFixed(num) 参数 描述 num 必 ...
- 利用 FFmpeg palettegen paletteuse 生成接近全色的 gif 动画
下载FFmpeg-VideoToGif-v1.0.bat.7z FFmpeg 2.6 及以上版本有效 未使用palette时 使用palette后 @echo off set inFile=2015. ...