XML文件操作学习(一)
受人启发,从今天开始也把学到的东西记在博客里加深印象,并且完成这个梳理过程。
最近大多数的时间都花费在做系统配置上了。大部分的配置比较复杂的都用xml文件来存储。暂时发现有以下几点需要注意的地方。
今天有点晚了,直接贴代码吧
<?xml version= "1.0" encoding= "utf-8"?> <Root> <item name="3" id= "3"/> <item name="2" id= "2"/> <item name="5" id= "5"/> <item name="1" id= "1"/> </Root>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace XmlCreateElementDemo { class Program { static void Main(string[] args) { var doc = new XmlDocument(); //测试1: 用相对路径load的问题 //方法1:文件放在bin/Debug目录下 //doc.Load("XmlSortDemo.xml"); //方法2:文件放在当前bin/Debug下的上一级目录,即放在bin下 doc.Load("../XmlSortDemo.xml");//当前目录的父目录 //测试2 :可以同时新建多个标签名相同的元素 var node1 = doc.CreateElement("node"); var node2 = doc.CreateElement("node"); //测试3 : InnerXml与OuterXml的区别 XmlNode root = doc.SelectSingleNode("Root"); var innerXml = root.InnerXml; var outerXml = root.OuterXml; } } }
Tip1:在测试1中,用相对路径加载文件的方法,和我们加载外部程序集时去Load那些dll文件时的道理是一样的,要确保程序执行到这里的时候能够找到指定的文件并且加载。程序在执行时,入口为当前项目的输出路径,一般为项目文件夹下的bin/Debug目录(这个输出路径可以在VS中进行设置),而如果直接写文件名的话,就需要将文件也放在这个输出目录下。
Tips2:doc.CreateElement("node");这个方法中,参数即为新建元素的标签名。同一个XmlDocument的实例可以新建多个有相同标签名的元素。
Tips3:InnerXml与OuterXml的区别。
在上述的代码中,
innerXml的值为:<item name="3" id="3" /><item name="2" id="2" /><item name="5" id="5" /><item name="1" id="1" />
OuterXml的值为:<Root><item name="3" id="3" /><item name="2" id="2" /><item name="5" id="5" /><item name="1" id="1" /></Root>
即OuterXml的值还包含了当前这个标签的标签名。