linq to xml

  1 using UnityEngine;
  2 using System;
  3 using System.Collections;
  4 using System.Collections.Generic;
  5 using DG.Tweening;
  6 using System.Linq;
  7 using System.Xml.Linq;
  8 
  9 public class MyTest2 : MonoBehaviour
 10 {
 11 
 12     string Path { get; set; }
 13     string NewPath { get; set; }
 14 
 15     void Awake()
 16     {
 17         Path = Application.persistentDataPath;
 18         CreateXml();
 19     }
 20 
 21     void OnGUI()
 22     {
 23         //if (GUI.Button(new Rect(10, 10, 150, 100), "CreateXml")) CreateXml();
 24         if (GUI.Button(new Rect(10, 150, 150, 100), "RemoveElement1")) RemoveElement1();
 25         if (GUI.Button(new Rect(10, 320, 150, 100), "AddBeforeElement2")) AddBeforeElement2();
 26     }
 27 
 28 
 29     void CreateXml()
 30     {
 31         XElement srcTree = new XElement("Root",
 32                 new XElement("Element1", 1,
 33                     new XElement("Child1", 1),
 34                     new XElement("Child2", 2),
 35                     new XElement("Child3", 3),
 36                     new XElement("Child4", 4),
 37                     new XElement("Child5", 5)),
 38                 new XElement("Element2", 2,
 39                     new XElement("Child1", 1),
 40                     new XElement("Child2", 2),
 41                     new XElement("Child3", 3),
 42                     new XElement("Child4", 4),
 43                     new XElement("Child5", 5)),
 44                 new XElement("Element3", 3,
 45                     new XElement("Item", 1),
 46                     new XElement("Item", 2),
 47                     new XElement("Item", 3),
 48                     new XElement("Item", 4),
 49                     new XElement("Item", 5))
 50             );
 51 
 52         NewPath = Path + "/" + srcTree.Name + ".xml";
 53         srcTree.Save(NewPath);
 54 
 55         //XElement newTree = XElement.Load(NewPath);
 56         //foreach (var item in srcTree.Elements())
 57         //{
 58         //    //Element1 : 112345
 59         //    Debug.Log(item.Name + " : " + item.Value);
 60         //    foreach (var item1 in item.Elements())
 61         //    {
 62         //        //Child1 : 1
 63         //        //Child1 : 2
 64         //        //Child1 : 3
 65         //        //Child1 : 4
 66         //        //Child1 : 5
 67         //        Debug.Log(item1.Name + " : " + item1.Value);
 68         //    }
 69         //}
 70 
 71         
 72     }
 73 
 74     void RemoveElement1()
 75     {
 76         XElement srcTree = XElement.Load(NewPath);
 77 
 78         var select = srcTree.Elements().Where(t => t.Name == "Element1").ToList();
 79         
 80         Debug.Log("select.Count" + select.Count);
 81         ///要 转化 成 list
 82         foreach (var item in select)
 83         {
 84             item.Remove();
 85         }
 86 
 87         NewPath = Path + "/" + srcTree.Name + ".xml";
 88         srcTree.Save(NewPath);
 89     }
 90 
 91     void AddBeforeElement2()
 92     {
 93         XElement srcTree = XElement.Load(NewPath);
 94 
 95         var select = srcTree.Element("Element2");
 96 
 97         select.AddBeforeSelf(new XElement("Element1","1"));
 98 
 99         NewPath = Path + "/" + srcTree.Name + ".xml";
100         srcTree.Save(NewPath);
101     }
102 }

 

posted @ 2014-12-22 21:10  灵魂重新  阅读(161)  评论(0编辑  收藏  举报