当前位置:编程学习 > C#/ASP.NET >>

C# 操作XML信息的问题

        #region【返回连接字符串】
        /// <summary>
        /// 返回连接字符串
        /// </summary>
        /// <returns></returns>
        /// <auther>Hujw</auther>
        /// <createdate>2010-8-19</createdate>
        static string GetConnectionString()
        {
            string conn = "";
            XmlDocument xmld = new XmlDocument();
            //需更改路径
            xmld.Load(@"BackUp\..\..\..\BackUpConfig.xml");           
            XmlNodeList xnl=xmld.DocumentElement.ChildNodes;
            foreach (XmlElement el in xnl)
            {
                if (el.Name.ToLower() == "connectionstring")
                {
                    conn  = el.Attributes["cs"].InnerText;
                }
            }
           
            return conn;
        }
        #endregion


        public static string ConnectionString = GetConnectionString();//连接语句

------------------------------------------------------------------------------------------------------------

XML信息

<?xml version="1.0" encoding="utf-8" ?>
<database>
 <databaseName key="dbN">CIMS</databaseName>
 <ConnectionString key="cs">server=.;Initial Catalog=CIMS;UserID=sa;Password=123</ConnectionString>
</database>

---------------------------------------------------------------------------------------------------------------

我写了这么一个方法 返回给数据库连接字符串 内容是从 XML里获取的 可是 每次运行到conn  = el.Attributes["cs"].InnerText;
断点测试走到这就会自动跳出到别的方法了连后面的结束大括号都不带走完的。。。然后报错   而且错误还不是及时报(就是继续后面的方法 到连接数据库的时候才报错) 貌似是运行时错误?

 

各位高手看看 是不是提取XML写错了 或者哪有问题。。。求教   XML路径没有问题

答案:这是我的方法 ,你试着改一下就行了

public static bool SetXMLInfo(string xmlfilepath, string namestr, string valuestr)//一次设置或添加一条信息
        {
            if (valuestr != "")
                valuestr = DES.Encrypt(valuestr);//加密

            SetInfoStruct setinfo = new SetInfoStruct(namestr, valuestr);
            if (!File.Exists(xmlfilepath))
            {
                try
                {
                    XmlDocument xmldoc = new XmlDocument();
                    XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");//<?xml version="1.0"?>
                    xmldoc.AppendChild(xmlnode);
                    XmlElement xmlelem = xmldoc.CreateElement("", "Settings", "");//建立根节点
                    xmldoc.AppendChild(xmlelem);

                    XmlNode root = xmldoc.SelectSingleNode("Settings");//查找<Employees>
                    XmlElement xe1 = xmldoc.CreateElement("Set");//创建一个<Node>节点
                    xe1.SetAttribute("Name", setinfo.Name);//设置该节点属性

                    XmlElement xesub1 = xmldoc.CreateElement("Value");
                    xesub1.InnerText = setinfo.Value;
                    xe1.AppendChild(xesub1);//添加到<Node>节点中
                    root.AppendChild(xe1);//添加到<Employees>节点中
                    xmldoc.Save(xmlfilepath);  //保存创建好的XML文档
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            else//xml文件存在
            {
                try
                {
                    bool findflag = false;
                    bool updatesuccessflag = false;
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(xmlfilepath);
                    XmlNode root = xmlDoc.SelectSingleNode("Settings");//查找根节点

                    foreach (XmlNode node in root)
                    {
                        if (node.Name == "Set")
                        {
                            if (node.Attributes["Name"].Value == setinfo.Name)//找到了name的信息 则更新
                            {
                                findflag = true;//找到
                                foreach (XmlNode xml in node)
                                {
                                    if (xml.Name == "Value")
                                    {
                                        xml.InnerText = setinfo.Value;//更新
                                        updatesuccessflag = true;//更新成功
                                        break;
                

上一个:C#程序中读取TXT文件
下一个:C# 如何打开默认浏览器主页

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,