zoukankan      html  css  js  c++  java
  • 根据父级节点ID更新子节点,简单xml操作

    功能实现:根据父级节点ID更新子节点,简单xml操作
    示例XML:

    <nav>
    
    <item name="Node1" id="x1">
    <sub link="url0">NodeName0</sub>
    <sub link="url1">NodeName1</sub>
    <sub link="url2">NodeName2</sub>
    </item>
    
    
    
    <item name="Node2" id="x2">
    <sub link="url0">NodeName0</sub>
    <sub link="url1">NodeName1</sub>
    <sub link="url2">NodeName2</sub>
    </item>
    
    
    <item name="Node3" id="x3">
    <sub link="url0">NodeName0</sub>
    <sub link="url1">NodeName1</sub>
    <sub link="url2">NodeName2</sub>
    </item>
    
    
    </nav>

    方法:

    //动态更新XML二级节点
    
            private void CreateNode()
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(xmlPath);//xmlPath为xml文件网站相对路径
                XmlNodeList nodeList = xmlDoc.SelectSingleNode("nav").ChildNodes;//搜寻根节点nav下的子节点
                foreach (XmlNode xn in nodeList)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.GetAttribute("id") == "x1")//搜寻nav下一级id为x1的子节点(该节点不唯一,但ID唯一)
                    {
                        XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点  
    
                        //foreach(XmlNode xn1 in nls)//遍历  
                        //{
                        //    XmlElement xe2 = (XmlElement)xn1;//转换类型 
    
                        //下面你懂的
                        StringBuilder strB = new StringBuilder();
                        DataTable dt = InfoHelper.ExecuteSQL("select here from Table where there ");
                        if (dt != null)
                        {
                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                strB.Append("<sub link=\"/About/biz.aspx?nc=" + dt.Rows[i]["nodecode"] + "\">" + dt.Rows[i]["nodename"] + "</sub>");
                            }
                        }
                        xe.InnerXml = strB.ToString();
                        // }
                    }
                }
               xmlDoc.Save(xmlPath);//保存XML文件
            }

    ///上述代码有删改,仅供学习交流参考之用
    以上文章由本人收集整理进行撰写,版权归属博客园及本人。欢迎转载和引用,但必须在转载和引用的开头或来源标注博客名称和该篇文章的链接地址。
  • 相关阅读:
    vue中router与route的区别
    网络编程-20200427
    JSP-20200428
    Servelet-1
    多线程-20200422-高级应用
    20200415_多线程——重点是应用场景
    2020-04-13注解和反射
    HIVE
    流的关联关系
    排序算法整理——坑+后期的数据结构部分
  • 原文地址:https://www.cnblogs.com/whitehouse/p/2749811.html
Copyright © 2011-2022 走看看