解决方案 »

  1.   

    http://blog.csdn.net/duanzi_peng/article/details/24018431
      

  2.   


    /// <summary>
            /// 根据节点名称 读取PersonalAccountSettings.xml中节点的InnerText值
            /// </summary>
            /// <param name="nodeName">节点名称</param>
            /// <returns>节点值</returns>
            public static string GetPersonalSettings(string nodeName)
            {
                string nodeText = String.Empty;
                try
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml");
                    XmlNode xn = xmlDoc.SelectSingleNode("root//" + nodeName + "");
                    nodeText = xn.InnerText;
                }
                catch
                { }
                return nodeText;
            }

    /// <summary>
            /// 根据节点名称 设置PersonalAccountSettings.xml中节点的值
            /// </summary>
            /// <param name="nodeName">节点名称</param>
            /// <param name="nodeValue">节点值</param>
            public static void SetPersonalSettings(string nodeName, string nodeValue)
            {
                try
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml");
                    XmlNode xn = xmlDoc.SelectSingleNode("root//" + nodeName + "");
                    XmlNode root = xmlDoc.SelectSingleNode("root");//查找根节点
                    if (null == xn)
                    {
                        XmlElement element = xmlDoc.CreateElement(nodeName);
                        element.InnerText = nodeValue;
                        root.AppendChild(element);
                    }
                    else
                    {
                        xn.InnerText = nodeValue;
                    }
                    xmlDoc.Save(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml");
                }
                catch
                { }
            }
      

  3.   

    linq 只是一种解决方式么,可以自己百度百度  常规的方法
    http://www.cnblogs.com/zhangyf/archive/2009/06/03/1495459.html
      

  4.   

    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <LastLoginAccount>0002</LastLoginAccount>
    </root>
      

  5.   

    msdn看看,或者找本入门书看看。
      

  6.   

    用linq to xml操作XML文件很方便的啊
      

  7.   

    http://blog.csdn.net/happy09li/article/details/7460521
      

  8.   

    <?xml version="1.0" encoding="utf-8"?>
    <Base>
      <Continent name="亚洲">
        <Country name="中国">
        </Country>
        <Country name="日本">
        </Country>
      </Continent>
      <Continent name="欧洲">
        <Country name="法国">
        </Country>
      </Continent>
      <Continent name="非洲">
      </Continent>
    </Base>
     DataSet ds = new DataSet();
                ds.ReadXml("test.xml");
                string s = ds.Tables[0].Rows[0][1].ToString();//亚洲
                string s1 = ds.Tables[0].Rows[1][1].ToString();//欧洲
                string s2 = ds.Tables[0].Rows[2][1].ToString();//非洲
                string ss = ds.Tables[1].Rows[0][0].ToString();//中国
                string ss1 = ds.Tables[1].Rows[1][0].ToString();//日本
                string ss2 = ds.Tables[1].Rows[2][0].ToString();//法国
      

  9.   

    C#读写XML文件示例
    //读取XML文件数据
     //调用公共类中的GetData方法,读取XML文件中的数据
    private object GetData(DataTable dt,string sColumnName,string dColumnName,string sValue)
    {
    DataRow[] rows = dt.Select(sColumnName + "='" + sValue + "'");
    if(rows.Length <= 0) return null;
    return rows[0][dColumnName];
    }//codego.net/tags/23/1/
    //调用公共类GetData显示数据
    public static DataTable GetData(string path,string tableName,params XmlParamter[] param)
    {
    //创建XmlDocument类的实例
                XmlDocument xmldoc = new XmlDocument();
                //调用XmlDocument类中的Load()方法加载XML文件
                xmldoc.Load(path);
                //创建DataTable类型的变量dt
    DataTable dt = new DataTable();
    ///获取根节点
                XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName + "s");
                //判断节点及其子节点是否为空,为空将返空值
    if(rootNode == null) return null;
    if(rootNode.ChildNodes.Count == 0) return null;
    ///创建保存记录的数据列
    foreach(XmlAttribute attr in rootNode.ChildNodes[0].Attributes)
    {
    dt.Columns.Add(new DataColumn(attr.Name,typeof(string)));
    }
    ///创建获取数据节点的XPath
    string xmlPath = "/" + tableName + "s/" + tableName;
    int operationCount = 0;
    StringBuilder operation = new StringBuilder();
    foreach(XmlParamter p in param)
    {
    if(p.Direction == ParameterDirection.Insert
    || p.Direction == ParameterDirection.Update)
    {
    continue;
    }
    ///创建条件表达式
    switch(p.Direction)
    {
    case ParameterDirection.Equal:
    operation.Append("@" + p.Name + "='" + p.Value + "'");
    break;
    case ParameterDirection.NotEqual:
    operation.Append("@" + p.Name + "<>'" + p.Value + "'");
    break;
    case ParameterDirection.Little:
    operation.Append("@" + p.Name + "<'" + p.Value + "'");
    break;
    case ParameterDirection.Great:
    operation.Append("@" + p.Name + ">'" + p.Value + "'");
    break;
    case ParameterDirection.Like:
    operation.Append("contains(@" + p.Name + ",'" + p.Value + "')");
    break;
    default: break;
    }
    operationCount++;
    operation.Append(" and ");
    }
    if(operationCount > 0)
    {   ///修正XPath
    operation.Remove(operation.Length - 5,5);
    xmlPath += "[" + operation.ToString() + "]";
    }
                //获取XML节点下的所有节点
                XmlNodeList nodeList = xmldoc.SelectNodes(xmlPath);
    ///遍历所有节点,并添加节点的数据
    foreach(XmlNode node in nodeList)
    {
    DataRow row = dt.NewRow();
    foreach(DataColumn column in dt.Columns)
    {   ///读取每一个属性
    row[column.ColumnName] = node.Attributes[column.ColumnName].Value;
    }
    dt.Rows.Add(row);
    }
    return dt;
    }
    //向XML文件写入数据
    public int AddTitle(string name,string body,int userID,int boardID,byte state)
    {
    XmlParamter[] param = {
    XmlDatabase.CreateInsertParameter("Name",name),
    XmlDatabase.CreateInsertParameter("Body",body),
    XmlDatabase.CreateInsertParameter("UserID",userID.ToString()),
    XmlDatabase.CreateInsertParameter("BoardID",boardID.ToString()),
    XmlDatabase.CreateInsertParameter("CreateDate",DateTime.Now.ToShortDateString()),
    XmlDatabase.CreateInsertParameter("VisitNum","0"),
    XmlDatabase.CreateInsertParameter("ReplyNum","0"),
    XmlDatabase.CreateInsertParameter("State",state.ToString())
    };
    //调用公共类中的AddXmlData向XML数据库中添加数据
    return (XmlDatabase.AddXmlData(XmlBBS.TitleFilePath,TitleTableName,param));
    }
    //添加数据 public static int AddXmlData(string path,string tableName,params XmlParamter[] param)
    {
                //创建XmlDocument类的实例
                XmlDocument xmldoc = new XmlDocument();
                //调用XmlDocument类中的Load()方法加载XML文件
                xmldoc.Load(path);
    ///选择根节点
                XmlNode node = xmldoc.SelectSingleNode("/" + tableName + "s");
    if(node == null) return -1;
                
    ///创建新记录的ID值
                int newID;
                if (node.LastChild == null)
                {
                    newID = 1;  
                }
                else
                {
                    newID = DataTypeConvert.ConvertToInt(node.LastChild.Attributes["ID"].Value) + 1;
                }
    if(newID < 1) return -1;
    ///创建一个新节点
                XmlNode newNode = xmldoc.CreateNode(XmlNodeType.Element, tableName, null);
    if(newNode == null)return -1;
    ///添加ID的值
                newNode.Attributes.Append(CreateNodeAttribute(xmldoc, "ID", newID.ToString()));
    ///添加新节点的属性
    foreach(XmlParamter p in param)
    {
                    newNode.Attributes.Append(CreateNodeAttribute(xmldoc, p.Name, p.Value));
    }
    ///将新节点追加到根节点中
    node.AppendChild(newNode);
                //保存XML文档
                xmldoc.Save(path);
    return newID;
    }