这是一个关于XML文档的操作管理器XMLHelper类,类中包括XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现

  经过这些日子以来,我根据上篇随笔中读写程序配置文件节点的方法来扩展了其功能,并写了这个XML文档的操作管理帮助类XMLHelper出来,这个XMLHelper类中包括了XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现,有兴趣的朋友,可以进来看看,所有代码都在WebForm和WinForm中调试通过.

参考我的上篇随笔:关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作

这是下面要操作的XML文档:

XML文档

 

以下是XMLHelper文档操作帮助类代码:

XMLHelper.cs XML文档操作帮助类 Code

 

1.创建XML文档:

      // 这是XML文档根节点名
             string  rootNodeName  = " book s" ;
            
            
// 这是XML文档物理文件名(包含物理路径)
             string  xmlFileName  =  Application.StartupPath  +   @" \book.xml " ;

            XMLHelper.CreateXmlDocument(xmlFileName, rootNodeName, 
" 1.0 " " utf-8 " null );
            MessageBox.Show(
" XML文档创建成功: "   +  xmlFileName);

 

2.向XML文档中添加一个新节点:

            string  xmlFileName  =  Application.StartupPath  +   @" \book.xml " ;
            
string  xpath  =   " /books " ;   // 这是新节点的父节点路径
             string  nodename  =   " book " ;  // 这是新节点名称 ,在父节点下新增
             string  nodetext  =   " 这是新节点中的文本值 " ;

            
bool  isSuccess  =  XMLHelper.CreateOrUpdateXmlNodeByXPath(xmlFileName, xpath, nodename, nodetext);
            MessageBox.Show(
" XML节点添加或更新成功: "   +  isSuccess.ToString());

 

3.向XML文档中的子节点中新增或修改(如果存在则修改)一个子节点,比如name,author,date节点等:

            string  xmlFileName  =  Application.StartupPath  +   @" \book.xml " ;
            
string  xpath  =   " /books/book " ;   // 这是新子节点的父节点路径
             string  nodename  =   " name " ;  // 这是新子节点名称,在父节点下新增
             string  nodetext  =   " 我的世界我的梦 " ;

            
bool  isSuccess  =  XMLHelper.CreateOrUpdateXmlNodeByXPath(xmlFileName, xpath, nodename, nodetext);
            MessageBox.Show(
" XML节点添加或更新成功: "   +  isSuccess.ToString());

 

4. 向XML文档中的子节点中新增或修改(如果存在则修改)一个子节点属性,比如id,ISDN属性等:

            string  xmlFileName  =  Application.StartupPath  +   @" \book.xml " ;
            
string  xpath  =   " /books/book " // 要新增属性的节点
             string  attributeName  =   " id " ;  // 新属性名称 ,ISDN号也是这么新增的
             string  attributeValue  =   " 1 " ;  // 新属性值

            
bool  isSuccess  =  XMLHelper.CreateOrUpdateXmlAttributeByXPath(xmlFileName, xpath, attributeName, attributeValue);
            MessageBox.Show(
" XML属性添加或更新成功: "   +  isSuccess.ToString());

 

5. 删除XML文档中的子节点:

             string  xmlFileName  =  Application.StartupPath  +   @" \book.xml " ;
            
string  xpath  =   " /books/book[@id='1'] " // 要删除的id为1的book子节点

            
bool  isSuccess  =  XMLHelper.DeleteXmlNodeByXPath(xmlFileName, xpath);
            MessageBox.Show(
" XML节点删除成功: "   +  isSuccess.ToString());

 

6. 删除XML文档中子节点的属性:

             string  xmlFileName  =  Application.StartupPath  +   @" \book.xml " ;
            
// 删除id为2的book子节点中的ISDN属性
             string  xpath  =   " /books/book[@id='2'] " ;
            
string  attributeName  =   " ISDN " ;

            
bool  isSuccess  =  XMLHelper.DeleteXmlAttributeByXPath(xmlFileName, xpath,attributeName);
            MessageBox.Show(
" XML属性删除成功: "   +  isSuccess.ToString());

 

7.读取XML文档中的所有子节点:

             string  xmlFileName  =  Application.StartupPath  +   @" \book.xml " ;
// 要读的id为1的book子节点
             string  xpath  =   " /books/book[@id='1'] " ;

            XmlNodeList nodeList 
=  XMLHelper.GetXmlNodeListByXpath(xmlFileName, xpath);
            
string  strAllNode  =   "" ;
            
// 遍历节点中所有的子节点
             foreach  (XmlNode node  in  nodeList)
            {
                strAllNode 
+=   " \n name: "   +  node.Name  +   "  InnerText: "   +  node.InnerText;
            }

            MessageBox.Show(
" XML节点中所有子节点有: "   +  strAllNode);

 

8.其它的方法我就不一一的例举了,各位自己动手去尝试便知,关键的地方就是那个xpath的参数设置了,

这个是XML文档中xpath语法,大家去网上一查便明白,好了,我要休息去,明白偶还有很多的工作做...

你可能感兴趣的:(help)