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文件的一个操作,当然是由于一些外力原因,我们决定自己来完 ...
随机推荐
- [Effective JavaScript 笔记]第19条:熟练掌握高阶函数
高阶函数介绍 高阶函数曾经是函数式编程的一个概念,感觉是很高深的术语.但开发简洁优雅的函数可以使代码更加简单明了.过去几年中脚本语言采用了这些个技术,揭开了函数式编程的最佳惯用法的神秘面纱.高阶函数就 ...
- easyui 删除行bug
easyui删除行,出现了bug.(经常使用这个框架的人几乎都会遇到) 我也非常纳闷,今天特地试了很久. 最后发现,如果是自己datagrid('getRows') 然后迭代出来,最后算出行号,可以成 ...
- 新的开始---cocos2d
今天是一个新的开始,cocos2d的环境搭配好了,并且打包案桌apk的环境也搭配好了,安卓的这个搭配环境还是出了一点问题,前面弄了两个晚上(11-12.30)没弄出来,中间好几天都没有去弄,今天光棍节 ...
- Linux中启动和停止jar包的运行
脚本一: startTest.sh内容如下: #!/bin/sh java -jar Test.jar & #注意:必须有&让其后台执行,否则没有pid生成 echo $! ...
- 初中数学题归纳w
刷完了一张代数 P1 计算 $\left( \frac{1}{1}-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+...+\frac{1}{2011}- \frac{1}{2 ...
- http协议学习系列
深入理解HTTP协议(转) http://www.blogjava.net/zjusuyong/articles/304788.html http协议学习系列 1. 基础概念篇 1.1 介绍 H ...
- 38.输出1到最大的N位数[Print 1 to max number of N bits]
[题目] 输入数字n,按顺序输出从1最大的n位10进制数.比如输入3,则输出1.2.3一直到最大的3位数即999. [分析] 这是一道很有意思的题目.看起来很简单,其实里面却有不少的玄机. [常规思路 ...
- 修改Tomcat服务器的默认端口号
tomcat服务器的默认端口号是8080,我们也可以修改为其他端口号,并且在没有启动Apache,IIS等占用80端口的web服务时,我们也可以设置为80端口,这样在生产中域名之后就可以不带端口号了, ...
- std::map常用方法
map<string, int> Employees; Employees["Mike C."] = 12306; Employees.insert(make_pair ...
- ping 有端口的ip
使用工具 tcping 使用方法,将此工具放在C:/Windows/System32 目录下, 在cmd 中: tcping 127.0.0.1 8080