代码改变世界

xmlDocument来操作xml文档

2010-12-30 10:17  elivsit  阅读(315)  评论(0编辑  收藏  举报

它的作用是解析xml文档,将其转换为对象,使你可以在程序中对其操作
例如如下的xml文档:
<?xml version="1.0" encoding="utf-8"?>
<userdata createuser="false">
   <dataconnection>
     <server>localhost</server>
     <uid>sa</uid>
     <pwd></pwd>
   </dataconnection>
   <net>
     <name>jiayuan</name>
   </net>
</userdata>

使用xmlDocument对其一些简单操作如下:

读取节点中的一个属性
    XmlDocument doc=new XmlDocument();
    doc.Load("config.xml");
    XmlNode xnuser=doc.SelectSingleNode("userdata");
    string flag=xnuser.Attributes["createuser"].InnerText;

读取节点中的值
    XmlDocument doc=new XmlDocument();
    doc.Load("config.xml");
    XmlNode xnserver = doc.SelectSingleNode("userdata/dataconnection/server");

修改节点的属性
    XmlDocument doc=new XmlDocument();
    doc.Load("config.xml");
    XmlNode xnuser=doc.SelectSingleNode("userdata");
    xnuser.Attributes["createuser"].InnerText="false";
    doc.Save("config.xml");

追加节点
    XmlDocument doc = new XmlDocument();
    XmlTextReader reader = new XmlTextReader("config.xml");
    doc.Load("config.xml");
    XmlElement root = doc.DocumentElement; // 获取根节点
    XmlElement tagMessage = doc.CreateElement("net");
    XmlElement tagText = doc.CreateElement("name");
    tagText.InnerText   = netname;
    tagMessage.AppendChild(tagText);    // 追加到 xml 文本的最后面
    root.AppendChild(tagMessage);
    reader.Close();      // 关闭 XmlTextReader
    doc.Save("config.xml");      // 保存 xml 文件

//////////////////////////////////////////

使用XmlDocument读取xml
读取Xml文件并存储到Hashtable中
      
        public static Hashtable GetXmlHashtable(string xmlfilepath)
        {
            XmlDocument xmldoc = new XmlDocument();
            Hashtable ht = new Hashtable();
            xmldoc.Load(xmlfilepath);
            XmlNodeList nodeList = xmldoc.GetElementsByTagName("keyname");
            string ht_key;
            string ht_value;

            for (int i = 0; i < nodeList.Count; i++)
            {
                ht_key = nodeList.Item(i).Attributes.GetNamedItem("name").Value.ToString();
                ht_value = nodeList.Item(i).InnerText.ToString();
                ht.Add(ht_key, ht_value);
            }
            return ht;
        }