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> 
XmlSortDemo.xml
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的值还包含了当前这个标签的标签名。

posted @ 2013-10-09 22:35  fionhan  阅读(443)  评论(0编辑  收藏  举报