读取,添加,修改xml文件

/// <summary>
    
/// 读取,添加,修改xml文件
    
/// </summary>
    
/// <param name="Xmlpath">Xml路径</param>
    
/// <param name="Node">新的子节点名称</param>
    
/// <param name="Value">新节点对应的值</param>
    
/// <param name="flag">1:读取,否则为 修改或者添加</param>
    
/// <returns>1:修改添加成功,为空字符串表示修改添加成功,否则是读取成功</returns>
    public static string getXML(string Xmlpath, string Node, string Value, int flag)
    {
        
try
        {
            
string filepath = HttpContext.Current.Server.MapPath(Xmlpath);
            XmlDocument xmlDoc 
= new XmlDocument();
            
if (!File.Exists(filepath))
            {
                XmlDeclaration xn 
= xmlDoc.CreateXmlDeclaration("1.0""utf-8"null);
                XmlElement root 
= xmlDoc.CreateElement("rss");
                XmlElement root1 
= xmlDoc.CreateElement("item");

                root.AppendChild(root1);
                xmlDoc.AppendChild(xn);
                xmlDoc.AppendChild(root);
                xmlDoc.Save(filepath);
//本地路径名字
            }
            xmlDoc.Load(filepath);
//你的xml文件
            string ReStr = string.Empty;
            XmlElement xmlObj 
= xmlDoc.DocumentElement;

            XmlNodeList xmlList 
= xmlDoc.SelectSingleNode(xmlObj.Name.ToString()).ChildNodes;

            
foreach (XmlNode xmlNo in xmlList)
            {
                
if (xmlNo.NodeType != XmlNodeType.Comment)//判断是不是注释类型
                {
                    XmlElement xe 
= (XmlElement)xmlNo;
                    {
                        
if (xe.Name == xmlObj.FirstChild.Name)
                        {
                            XmlNodeList xmlNList 
= xmlObj.FirstChild.ChildNodes;

                            
foreach (XmlNode xmld in xmlNList)
                            {
                                XmlElement xe1 
= (XmlElement)xmld;
                                {
                                    
if (xe1.Name == Node)
                                    {
                                        
if (flag == 1)//读取值
                                        {
                                            
if (xmld.InnerText != null && xmld.InnerText != "")
                                            {
                                                ReStr 
= xmld.InnerText;
                                            }
                                        }
                                        
else//修改值
                                        {
                                            xmld.InnerText 
= Value;//给节点赋值
                                            xmlDoc.Save(filepath);
                                            ReStr 
= Value.Trim();
                                        }
                                    }
                                }
                            }
                            
if (ReStr == string.Empty)// 添加节点
                            {
                                XmlNode newNode;
                                newNode 
= xmlDoc.CreateNode("element", Node, Value);//创建节点
                                newNode.InnerText = Value;//给节点赋值
                                xe.AppendChild(newNode);//把节点添加到doc
                                xmlDoc.Save(filepath);
                                ReStr 
= Value.Trim();
                            }
                        }
                    }
                }
            }
            
return ReStr;
        }
        
catch
        {
            
return string.Empty;
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值