关于XML文件的用法,本文简单介绍创建、读取和增删操作 。

  1.创建有三种方法

  (1)通过XmlDocument创建,然后分级添加子目录

 XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("album");
// 创建根节点
root.SetAttribute("name", "album1");
// 设置属性
doc.AppendChild(root);
// 加入到xml document
XmlElement preview = doc.CreateElement("Preview");
// 创建preview元素
preview.SetAttribute("path", "album1");
preview.SetAttribute("extension", "xpi");
preview.SetAttribute("sizew", "");
// 设置属性
preview.SetAttribute("sizeh", "");
preview.SetAttribute("totalpage", "");
root.AppendChild(preview);
// 添加到xml document
XmlElement page = doc.CreateElement("Page");
page.SetAttribute("id", "");
page.SetAttribute("text", "封面");
page.SetAttribute("bgimg", "fm.xpi");
page.SetAttribute("sizew", "");
page.SetAttribute("sizeh", "");
page.SetAttribute("totalphoto", "");
preview.AppendChild(page); XmlElement photo1 = doc.CreateElement("Photo");
photo1.SetAttribute("id", "");
photo1.SetAttribute("x", "");
photo1.SetAttribute("y", "");
photo1.SetAttribute("minw", "");
photo1.SetAttribute("minh", "");
photo1.SetAttribute("pwidth", "");
photo1.SetAttribute("pheight", "");
photo1.SetAttribute("image", "hard_cover_color.xpi");
page.AppendChild(photo1); XmlElement photo2 = doc.CreateElement("Photo");
photo2.SetAttribute("id", "");
photo2.SetAttribute("x", "");
photo2.SetAttribute("y", "");
photo2.SetAttribute("minw", "");
photo2.SetAttribute("minh", "");
photo2.SetAttribute("pwidth", "");
photo2.SetAttribute("pheight", "");
photo2.SetAttribute("image", "sampleS.xpi");
page.AppendChild(photo2);
//保存
doc.Save(@"album1.xml");

  doc是新建的XML文件,然后CreatElement(album)创建XML内部成员,通过SetAttribute设置其属性,在设置属性后将album添加到doc中(doc.AppendChild),这样就在doc中完整添加了一个根目录。在再次CreatElement时,根据其AppendChild的对象位置可以设置其是哪级目录下。

  (2)创建XML文件后直接通过文本形式Load其内部内容

XmlDocument xmldoc = new XmlDocument(); //创建空的XML文档
xmldoc.LoadXml("<?xml version='1.0' encoding='gb2312'?>" +
"<bookstore>" +
"<book genre='fantasy' ISBN='2-3631-4'>" +
"<title>Oberon's Legacy</title>" +
"<author>Corets, Eva</author>" +
"<price>5.95</price>" +
"</book>" +
"</bookstore>");
xmldoc.Save("bookstore2.xml"); //保存

  (3)此方式是较为完整的创建方法,其内部各属性参数设置全面

 XmlText xmltext;
XmlDocument xmldoc = new XmlDocument(); //加入XML的声明段落
XmlNode xmlnode = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmlnode); //加入一个根元素
XmlElement xmlelem = xmldoc.CreateElement("", "bookstore", "");
xmltext = xmldoc.CreateTextNode("");
xmlelem.AppendChild(xmltext);
xmldoc.AppendChild(xmlelem); //加入一个子元素
XmlElement xmlelem1 = xmldoc.CreateElement("", "book", "");
xmltext = xmldoc.CreateTextNode("");
xmlelem1.AppendChild(xmltext);
//为子元素"book"增加两个属性
xmlelem1.SetAttribute("genre", "", "fantasy");
xmlelem1.SetAttribute("ISBN", "2-3631-4"); xmldoc.ChildNodes.Item().AppendChild(xmlelem1); //创建三个子元素的子元素
XmlElement xmlelem2 = xmldoc.CreateElement("", "title", "");
xmltext = xmldoc.CreateTextNode("Oberon's Legacy");
xmlelem2.AppendChild(xmltext);
xmldoc.ChildNodes.Item().AppendChild(xmlelem1).AppendChild(xmlelem2); XmlElement xmlelem3 = xmldoc.CreateElement("", "author", "");
xmltext = xmldoc.CreateTextNode("Corets, Eva");
xmlelem3.AppendChild(xmltext);
xmldoc.ChildNodes.Item().AppendChild(xmlelem1).AppendChild(xmlelem3); XmlElement xmlelem4 = xmldoc.CreateElement("", "price", "");
xmltext = xmldoc.CreateTextNode("5.95");
xmlelem4.AppendChild(xmltext);
xmldoc.ChildNodes.Item().AppendChild(xmlelem1).AppendChild(xmlelem4);
xmldoc.Save("bookstore.xml"); //保存
showcontent.Text = "";
showcontent.Text = xmldoc.InnerXml;

  2.打开XML文件,两种方式

  (1)通过新建一个XML文件然后Load打开

XmlDocument xmldoc= new XmlDocument();
xmldoc.Load("album1.xml");
showcontent.Text = "";
showcontent.Text = xmldoc.InnerXml;

  (2)通过XmlTextReader新建

 XmlTextReader reader = new XmlTextReader("album1.xml");
while (reader.Read()) MessageBox.Show(reader.Name);
reader.Close();

  记得在结尾做Close()。

  3.寻找和插入节点。

  (1)通过属性匹配找到需要的节点,然后增加新的节点

 XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("album1.xml");
XmlElement root = xmldoc.DocumentElement;
//查找结点 增加新的子节点
foreach (XmlNode item in root.ChildNodes)
{
if (item.Attributes["sizeh"].Value == "")
{
XmlElement photo2 = xmldoc.CreateElement("photo01");
photo2.SetAttribute("id", "");
photo2.SetAttribute("x", "");
photo2.SetAttribute("y", "");
photo2.SetAttribute("minw", "");
photo2.SetAttribute("minh", "");
photo2.SetAttribute("pwidth", "");
photo2.SetAttribute("pheight", "");
photo2.SetAttribute("image", "sampleS.xpi");
item.AppendChild(photo2);
xmldoc.Save(@"album02.xml");

  4.寻找和删除节点

  (1)和上面相似,通过foreach查找,找到属性相对应的节点然后remove()

 XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(@"album1.xml");
XmlElement root = xmldoc.DocumentElement;
// 查找结点 增加新的子节点
foreach (XmlNode item in root.ChildNodes)
{
if (item.Attributes["sizeh"].Value == "")
{
item.RemoveAll();
xmldoc.Save(@"album02.xml");
}
}

  (2)获取节点列表,然后通过Foreach查找其需求(Photo)相对应的选项remove()

XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(@"album1.xml");
XmlNodeList nodelist = xmldoc.SelectSingleNode("album").ChildNodes;
//找到根节点,并读出其子节点列表
foreach (XmlNode xn in nodelist)
{
XmlElement xel = (XmlElement)xn;
XmlNodeList node = xel.GetElementsByTagName("Photo");
if (node.Count > )
{
if (node[].InnerText == "")
xel.RemoveAll();
//break;
}
}
xmldoc.Save(@"album02.xml");

  写在最后,上述这些关于XML的操作是通过百度得来的点点滴滴,然后总结得来的,有的因为自己偷懒还把原作者的例子也搬来了,只是整理的时间有些长,导致原作者的博客地址没有保存到,所以没有标记声明原作者内容,在此道歉。

  第一次写博客,目的是整理所学到的,分享给大家借鉴。有错的地方,麻烦指正。

C#关于XML的一些简单用法的更多相关文章

  1. WPF之Treeview控件简单用法

    TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...

  2. listActivity和ExpandableListActivity的简单用法

    http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...

  3. JS的简单用法

    JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...

  4. JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法

    一.简述 本文讲JAVA使用Logback发送日志到控制台.文件.ELK的最简单用法. 二.教程 1.新建pom.xml项目引入下列依赖: <dependencies> <!--Be ...

  5. Android MultiType第三方库的基本使用和案例+DiffUtil的简单用法

    1.MultiType简单介绍 1.1.MultiType用于比较复杂的页面. 如下图,今日头条用到了MultiType处理各种复杂的页面.    这种还是比较简单的类型.因为一个页面也就这种类型. ...

  6. Android—— ListView 的简单用法及定制ListView界面

    一.ListView的简单用法 2. 训练目标 1) 掌握 ListView 控件的使用 2) 掌握 Adapter 桥梁的作用 实现步骤: 1)首先新建一个项目, 并让ADT 自动帮我们创建好活动. ...

  7. MyBatis从入门到精通(2):MyBatis XML方式的基本用法

    本章将通过完成权限管理的常见业务来学习 MyBatis XML方式的基本用法 2.1一个简单的权限控制需求 权限管理的需求: 一个用户拥有若干角色,一个角色拥有若干权限,权限就是对某个模块资源的某种操 ...

  8. 浅谈ViewPager与TabLayout的简单用法

      今天介绍一下ViewPager与TabLayout的简单用法 1.准备   在一切开始之前,你懂得,先导库,老方法,在build.gradle直接添加下面这一句   implementation ...

  9. java项目中ehcache缓存最简单用法

      java项目中ehcache缓存最简单用法: 1.下载ehcache-core-2.4.3.jar复制到项目的lib目录下 2.新建ehcache.xml文件,放置在项目src目录下的resour ...

随机推荐

  1. 查看 Android App 的 versionCode

    有 App 源码时,可以直接查看 AndroidManifest.xml 文件. <manifest android:versionName="1.4" android:ve ...

  2. 【Linux】创建逻辑卷管理(LVM)

    LVM是对磁盘进行分区管理的机制.LVM有很多优点:在线扩容,跨磁盘分区......,缺点:管理相对麻烦.创建LVM的过程如下: LVM是基于普通分区或者整块硬盘来进行的.我们首先把这些存储转换为PV ...

  3. 解决Fiddler抓包上不了网的问题:

    以前安装Fiddler 没有配置过相关设置,经常出现就是打开fiddler后,浏览器就无法上网了,刚开始觉得可能是因为而公司上网是需要自己的代理的,但fiddler打开后默认127.0.0.1作为IE ...

  4. 利用jsonp进行Ajax跨域请求

    在进行Ajax请求的时候经常会遇到跨域的问题,这个时候一般就会用到jsonp. 关于json和jsonp,网上有很多原理解释,这里就不多赘述,需要的自行搜索. 下面是一个简单的ajax跨域请求示例: ...

  5. Swift库二进制接口(ABI)兼容性研究

    前言 阿里云APP组件化过程中,我们拆分出了若干基础组件库和业务代码库,由于代码是采用Swift编写的,所以这些库都是动态库形式.在上一个正式版本,组件化达到了完全形态,主工程只剩下一个壳,所有代码都 ...

  6. [系统资源攻略]memory

    内存 这里的讲到的 "内存" 包括物理内存和虚拟内存,虚拟内存(Virtual Memory)把计算机的内存空间扩展到硬盘,物理内存(RAM)和硬盘的一部分空间(SWAP)组合在一 ...

  7. C#第十六节课

    out using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.T ...

  8. c#打包时 Could not find file "I:\VS2012\myWork\SmartCam\SmartCam\bin\Debug\Emgu.CV.DebuggerVisualizers.VS2012.dll" ISEXP : error : -6103: Could not find file "I:\VS2012\myWork\SmartCam\SmartCam\bin

    1.错误:C#打包时发生如下错误: 错误 1 -6103: Could not find file "I:\VS2012\myWork\SmartCam\SmartCam\bin\Debug ...

  9. zuul 路由网关

    一.阐述 Zuul 包含了对请求的路由和过滤两个主要的功能: 路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础: 滤器功能:负责对请求的处理过程干预,是实现请求校验.服务 ...

  10. mongodb--win10安装

    安装完成后再将安装后的bin目录加入PATH路径