将XML文件转换为easyui Tree结构json

private void GetTreeCamera()
       {
           XmlDocument xmlDoc = new XmlDocument();
           xmlDoc.Load(HttpContext.Current.Server.MapPath("camera.xml"));
           StringBuilder result = new StringBuilder();
           StringBuilder sb = new StringBuilder();
           //获取当前XML文档的根 一级
           XmlNode oNode = xmlDoc.DocumentElement;
           if (!oNode.HasChildNodes)
               result.Append("[]");
           else
           {
               //获取根节点的所有子节点列表 
               XmlNodeList oList = oNode.ChildNodes;
               result.Append("[");
               foreach (XmlNode Node in oList)
               {
                   sb.Clear();
                   string r1 = getJsonByNode(Node, sb);
                   result.Append(r1);
               }
               result = result.Remove(result.Length - 1, 1);
               result.Append("]");
           }
           WebHelper.HttpResponseJson(result.ToString());
       }
        /// <summary>
        /// 遍历结点,拼接json
        /// </summary>
        /// <param name="Node"></param>
        /// <param name="sb"></param>
        /// <returns></returns>
        private string getJsonByNode(XmlNode Node, StringBuilder sb)
        {
            if (!Node.HasChildNodes)
            {
                sb.Append("{\"id\":\"" + Node.Attributes["id"].Value + "\",\"text\":\"" + Node.Attributes["name"].Value.Trim() + "\",\"state\":\"open\"},");
            }
            else
            {
                sb.Append("{\"text\":\"" + Node.Attributes["name"].Value.Trim() + "\",\"children\":[");
                XmlNodeList oList2 = Node.ChildNodes;
                foreach (XmlNode Node2 in oList2)
                {
                    getJsonByNode(Node2, sb);
                }
                sb = sb.Remove(sb.Length - 1, 1);
                sb.Append("]},");
            }
            return sb.ToString();
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值