XML操作类

 

public class XmlControl:Object
 {
        
protected string strXmlFile;

        
protected XmlDocument objXmlDoc = new XmlDocument();

        
public XmlControl(string XmlFile, Boolean bOverWrite, string sRoot)
        {
            
try
            {
                
//如果覆盖模式,则强行创建一个xml文档
                if (bOverWrite)
                {
                    objXmlDoc.AppendChild(objXmlDoc.CreateXmlDeclaration(
"1.0""gb2312"null));//设置xml的版本,格式信息
                    objXmlDoc.AppendChild(objXmlDoc.CreateElement("", sRoot, ""));//创建根元素
                    objXmlDoc.Save(XmlFile);//保存
                }
                
else //否则,检查文件是否存在,不存在则创建
                {
                    
if (!(File.Exists(XmlFile)))
                    {
                        objXmlDoc.AppendChild(objXmlDoc.CreateXmlDeclaration(
"1.0""gb2312"null));
                        objXmlDoc.AppendChild(objXmlDoc.CreateElement(
"", sRoot, ""));
                        objXmlDoc.Save(XmlFile);
                    }
                }
                objXmlDoc.Load(XmlFile);
            }
            
catch (System.Exception ex)
            {
                
throw ex;
            }
            strXmlFile 
= XmlFile;
        }

        
public DataView GetData(string XmlPathNode)
        {
            
//查找数据。返回一个DataView
            DataSet ds = new DataSet();
            
try
            {
                StringReader read 
= new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
                ds.ReadXml(read);
                
return ds.Tables[0].DefaultView;
            }
            
catch
            {
                
return null;
            }



        }

        
public void UpdateNode(string xmlPathNode, string content)
        {
            
//更新节点內容,如果多个相同的节点,则更新第一个节点
            objXmlDoc.SelectSingleNode(xmlPathNode).InnerText = content;
        }

        
public void UpdateNode(string xmlPathNode, string[] arrAttribName, string[] arrAttribContent, string content)
        {
            
//更新节点,带属性和内容


            
//修改内容
            objXmlDoc.SelectSingleNode(xmlPathNode).InnerText = content;

            
//修改属性
            for (int i = 0; i <= arrAttribName.GetUpperBound(0); i++)
            {
                objXmlDoc.SelectSingleNode(xmlPathNode).Attributes[i].Value 
= arrAttribContent[i];
            }
        }

        
public void DeleteNode(string Node)
        {
            
//刪除一个节点。
            try
            {
                
string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
                objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
            }
            
catch {
                
//throw;   
                return;
            }
        }

        
public void InsertNode(string mainNode, string ChildNode, string Element, string Content)
        {
            
//插入一节点和此节点的一子节点。
            XmlNode objRootNode = objXmlDoc.SelectSingleNode(mainNode);
            XmlElement objChildNode 
= objXmlDoc.CreateElement(ChildNode);
            objRootNode.AppendChild(objChildNode);
//插入节点
            XmlElement objElement = objXmlDoc.CreateElement(Element);
            objElement.InnerText 
= Content;
            objChildNode.AppendChild(objElement);
//插入子节点
        }

        
public void InsertNode(string mainNode, string Element, string Attrib, string AttribContent, string Content)
        {
            
//插入一个节点,带一属性。
            XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);
            XmlElement objElement 
= objXmlDoc.CreateElement(Element);
            objElement.SetAttribute(Attrib, AttribContent);
            objElement.InnerText 
= Content;
            objNode.AppendChild(objElement);
        }

        
public void InsertNode(string mainNode, string Element, string Content)
        {
            
//插入一个节点,不带属性。
            XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);
            XmlElement objElement 
= objXmlDoc.CreateElement(Element);
            objElement.InnerText 
= Content;
            objNode.AppendChild(objElement);
        }

        
public void InsertNode(string mainNode, string elementName, string[] arrAttributeName, string[] arrAttributeContent, string elementContent)
        {
            XmlNode objNode 
= objXmlDoc.SelectSingleNode(mainNode);
            XmlElement objElement 
= objXmlDoc.CreateElement(elementName);
            
for (int i = 0; i <= arrAttributeName.GetUpperBound(0); i++)
            {
                objElement.SetAttribute(arrAttributeName[i], arrAttributeContent[i]);
            }
            objElement.InnerText 
= elementContent;
            objNode.AppendChild(objElement);
        }

        
public void Save()
        {
            
//保存文档。
            try
            {
                objXmlDoc.Save(strXmlFile);
            }
            
catch (System.Exception ex)
            {
                
throw ex;
            }
            objXmlDoc 
= null;
        }
    }

转载于:https://www.cnblogs.com/ruochen/archive/2007/12/28/1018187.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell脚本中if的相关参数

转自&#xff1a;http://blog.csdn.net/aaaaatiger/article/details/1713611[ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d FILE ] 如果 FILE 存在且是一个…

mysql设置端口_修改mysql端口以及出现的问题

为了提高服务器的安全性&#xff0c;本节课主要讲的是Linux下如何修改Mysql端口。支持Linux环境下大部分系统的修改&#xff0c;如Centos和Ubuntu等。一、编辑my.cnfvi /etc/my.cnf二、在[mysqld]下添加port3506三、重启mysql服务service mysqld restart这里我之前出现了一个…

[转]你打算如何提升自己?

一年一度的金九银十&#xff0c;对于职场人来说&#xff0c;人们比盼望过年过节还期待&#xff0c;过年过节只是得到更好的休息&#xff0c;而金九银十&#xff0c;如果机会适当&#xff0c;得到的是实实在在的提升&#xff0c;职位提升、薪酬提升。在物价和股票都上升的时候&a…

下载安装webstrom及激活

太久没在新电脑上安装websrtom&#xff0c;又有点忘了咋激活。 一、安装 1.直接在浏览器搜索webstrom&#xff0c;打开官网&#xff0c;直接点击download。如下图 2.打开安装包&#xff0c;开始安装&#xff0c;直接点击 next 3.选择安装路径&#xff08;安装在你想安装的位置&…

CentOS命令行安装配置KVM详细教程

系统为centos 6.4 64位 最小化安装 服务器为dell R720&#xff0c;所以网卡为em0&#xff0c;在vmware作为练习安装学习&#xff0c;同样可以&#xff0c;命令行不是为了显的牛B&#xff0c;而是不用考虑桌面兼容性和其他原因的影响一、查看是否支持虚拟化vmware开启方式虚拟化…

mysql addslashes_PHP函数addslashes和mysql_real_escape_string的区别

首先&#xff1a;不要使用mysql_escape_string&#xff0c;它已被弃用&#xff0c;请使用mysql_real_escape_string代替它。mysql_real_escape_string和addslashes的区别在于&#xff1a;区别一&#xff1a;addslashes不知道任何有关MySQL连接的字符集。如果你给所使用的MySQL连…

WebBrowser 控件 内存溢出 补丁 From Microsoft

在程序中用WebBrowser长时间不停访问不同页面会造成内存溢出&#xff0c;微软给出了补丁&#xff0c;但是似乎没有怎么测试。要获得补丁必须通过邮件申请&#xff0c;我申请了三次才凑够了XP&#xff0c;2003和Vista的补丁&#xff0c;给大家分享。不过微软说没有经过回归测试&…

C#中如何得到Graphics对象

2019独角兽企业重金招聘Python工程师标准>>> 利用Graphics对象&#xff0c;我们可以绘制理想的UI。这里首先介绍C#中如何得到Graphics对象。 /如何得到Graphics对象 1. Control.CreateGraphics();直接通过Control类的公开方法获取。可以是Form&#xff0c;基础控件&…

【Lucene4.8教程之中的一个】使用Lucene4.8进行索引及搜索的基本操作

版权声明&#xff1a;本文为博主原创文章。转载请注明来自http://blog.csdn.net/jediael_lu/ https://blog.csdn.net/jediael_lu/article/details/30035025 在Lucene对文本进行处理的过程中&#xff0c;能够大致分为三大部分&#xff1a; 1、索引文件&#xff1a;提取文档内容并…

mysql 5.5 创建用户_MySQL5.5以上版本添加用户

MySQL数据库在5.5以后的版本对添加用户的操作进行了改版&#xff0c;已经不能使用原有的添加语法操作。MySQL数据库5.6版本变更&#xff1a;在数据库用户这一块&#xff0c;为了数据安全&#xff0c;5.6版本不在允许root用户通过insert语句对user表进行添加用户如图报错语法貌似…

discuz!nt论坛搬迁后出错,提示:对象名 'dnt_templates' 无效

2007年10月30日 星期二 16:23对象名 dnt_templates 无效解决方法&#xff1a; --解决重装系统并还原论坛数据库后&#xff0c;数据库帐号不关联的问题。--注意请用sa帐号 进行如下操作--操作之前&#xff0c;确保当前SqlServer中存在和原来数据库所有者同名的帐号 Exec sp_conf…

linux和windows双系统互拷文件乱码问题

2019独角兽企业重金招聘Python工程师标准>>> 如果你需要在linux下面用到windows下的文件&#xff0c;拷贝上去后经常发现中文显示乱码。。原因是Windows中默认的文件格式是 GBK(gb2312)&#xff0c;而Linux一般都是UTF-8。比较繁琐的方法是在windows下用程序把内容转…

LOJ2195 旅行

LOJ2195 旅行 题目描述S 国有 N 个城市&#xff0c;编号从 1 到 N。城市间用 N-1 条双向道路连接&#xff0c;满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教&#xff0c;如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便&#xff0c;我们用不…

System variables, logging and the Execute SQL Task...(zz)

原文地址http://sqljunkies.com/WebLog/knight_reign/archive/2005/02/27/8187.aspxHeres something useful you can do with system variables and the SQL Task. Logging in SSIS is more flexible and there are more options for logging destinations and formats then wi…

mysql linux文件_MySQL在Linux系统下配置文件详解

在日常的的开发过程中接触到了SQLServer和MySQL数据库的操作性问题&#xff0c;可能是以前接触的都是SQL Server&#xff0c;才开始接触MySQL&#xff0c;总感觉使用MySQL没有使用SQLserver那么顺手&#xff0c;一些关键的系统函数&#xff0c;比如说开窗、行转列、列转行、自增…

logger

log4j日志配置关键字: apache log4j 1、配置根Logger:log4j.rootLogger [ level ] , appenderName, appenderName2level&#xff1a;日志的级别&#xff0c;指定这条日志信息的重要性。分为ALL < DEBUG < INFO < WARN 一般常用的为 DEBUG &#xff0c; INFO &#xf…

如何实现从wgs-84到beijing54的坐标转换

摘要&#xff1a;关于这个坐标系的转化网上有很多文章探讨了各种转换的方法。通过自己的学习&#xff0c;我自己做了一下总结&#xff0c;同时给出了其中要遇到的部分术语和数据&#xff0c;方便以后查阅使用。主要介绍的是&#xff1a;3参数&#xff08;七参数&#xff09;转换…

增删改查(curd)

curd的解释: 代表创建&#xff08;Create&#xff09;、更新&#xff08;Update&#xff09;、读取&#xff08;Retrieve&#xff09;和删除&#xff08;Delete&#xff09; 查询基本使用 查询所有列select * from 表名; 例&#xff1a; select * from classes; 查询指定列可以…

mysql group by 别名_[转]为什么group by后面不能使用别名(除MySQL)

同事工作中遇到一个问题&#xff1a;select count(billingdate),to_char(billingdate,YYYYmm) monthfrom tu_tradewhere to_char(billingdate,YYYY) 2017and reportstat 30group by month;-----执行报错&#xff0c;cant resolve month............因为Sql语句执行顺序(7) …

R内存扩展 win7内存扩展

安装包 imdiskinst 文件 램디스크 사용http://www.ltr-data.se/ http://cruciancar.blog.me/150101634586 --TEMP 변수 TEMP,TMP%USERPROFILE%\AppData\Local\Temp%USERPROFILE%\AppData\Local\Temp --Licensehttp://linsoo.co.kr/2281 --추가imdisk.exe -a -t vm -m r: -s 102…