c#操作xml之三

上次,我们介绍了增加和删除xml的一些操作,这次我们将介绍如何更改和读取xml特定节点。我们依然以上次的xml文件为例:

<?xml version="1.0" encoding="utf-8"?>
<phonebook>
  
<member id="6">
    
<name>456</name>
    
<qq>5465</qq>
  
</member>
  
<member id="5">
    
<name>jjjjj</name>
    
<qq>3456789</qq>
  
</member>
</phonebook>

 
首先是更改操作,它也包含两个方面即更改指定节点的值和指定节点的某一属性值,我们可以使用的方法如下:

  /// <summary>
        
/// 更新Xml节点内容
        
/// </summary>
        
/// <param name="xmlPath">xml路径</param>
        
/// <param name="Node">要更换内容的节点:节点路径 根节点/父节点/当前节点</param>
        
/// <param name="Content">新的内容</param>

        public static void XmlNodeReplace(string xmlPath, string Node, string Content)
        
{
            XmlDocument objXmlDoc 
= new XmlDocument();
            objXmlDoc.Load(xmlPath);
            objXmlDoc.SelectSingleNode(Node).InnerText 
= Content;
            objXmlDoc.Save(xmlPath);

        }


 
/// <summary>
        
/// 更改节点的属性值
        
/// </summary>
        
/// <param name="xmlPath">文件路径</param>
        
/// <param name="NodePath">节点路径</param>
        
/// <param name="NodeAttribute1">要更改的节点属性的名称</param>
        
/// <param name="NodeAttributeText">更改的属性值</param>

        public static void XmlAttributeEide(string xmlPath, string NodePath, string NodeAttribute1, string NodeAttributeText)
        
{
            XmlDocument objXmlDoc 
= new XmlDocument();
            objXmlDoc.Load(xmlPath);
            XmlNode nodePath 
= objXmlDoc.SelectSingleNode(NodePath);
            XmlElement xe 
= (XmlElement)nodePath;
            xe.SetAttribute(NodeAttribute1, NodeAttributeText);
            objXmlDoc.Save(xmlPath);

        }


第一个方面,加入我们要更改menber(id=6)下节点name的值我们可以这样做:

    string xmlPath = Server.MapPath("~/test.xml");

        XmlHelper.XmlNodeReplace(xmlPath, 
"//member[@id=6]/name" ,"hya");

也可以

    string xmlPath = Server.MapPath("~/test.xml");

        XmlHelper.XmlNodeReplace(xmlPath, 
"//member[qq='5465']/name" ,"hya");

总之你能够用xpath语法找到所要更改的节点即可。
更改属性值也一样,在这不在赘述!
查询正如对数据库操作查询考查你对sql的熟练程度一样,对xml的查询也就是考查你对xpath了解多少。在这里我只是列出几个有限的调用方法,相信从上面的介绍中你可以大致对xpath有了一定的了解:


        
读取XML到DataSet

        
读取xml文档并返回一个节点

        
查找数据,返回一个DataSet


 

posted @   玉米疯收  阅读(1529)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示