加强网站建设的建议360网站卫士代备案流程



        /*
         XML(可扩展标记语言):用于传输和存储数据
         XML文档:树结构;包含根元素
         XML元素:从开始标签到结束标签的部分
         
         XML语法规则:
         1、所有XML元素都必须有结束标签
         2、XML标签对字母大小写敏感
         3、XML必须正确嵌套
         4、必须有根元素
         5、XML的属性值必须加引号
         
         XML中的注释:
         <!-- This is a comment -->
        XML的命名规则:
         名称可以含字母、数字以及其他字符
         名称不能以数字或标点符号开始
         名称不能以字符“Xml、xml、XML”开始
         名称不能包含空格
        可以使用任何名称(没有保留的字词)
          */
// Skill.xml
<?xml version="1.0" encoding="utf-8" ?> 
<skills><skill><id> 1 </id><name lang ="cn">大慈大悲手</name><damage>166</damage></skill><skill><id> 2 </id><name lang ="cn">佛落掌</name><damage>366</damage></skill><skill><id> 3 </id><name lang ="cn">如来</name><damage>666</damage></skill>
</skills> 
 
// Skill.cs
    class Skill{public int ID { get; set; }public string Name { get; set; }public string Lang { get; set; }public int Damage { get; set; }} 
// Program.cs
       static void Main(string[] args){List<Skill> list = new List<Skill>(); //将Skill类的数据放入实例化的列表中XmlDocument xmlDoc = new XmlDocument(); //实例化一个xml文档类型//路径加载方法xmlDoc.Load(@"F:\C#编程\XML uesr\Skills.xml");//字符串加载方法//xmlDoc.LoadXml(File.ReadAllText("Skills.xml"));//获取1号子节点,注意:0是声明XmlNode root0 = xmlDoc.ChildNodes[0];XmlNode root = xmlDoc.ChildNodes[1];Console.WriteLine(root0.Name);  // xmlConsole.WriteLine(root.Name);  // skills//获取root的所有子节点XmlNodeList skillList = root.ChildNodes;foreach(XmlNode skill in skillList){// xml获取子节点和属性值方案一
/*               Skill skillObj = new Skill();XmlElement idEle = skill["id"];skillObj.ID = Int32.Parse(idEle.InnerText);XmlElement nameEle = skill["name"];skillObj.Name = nameEle.InnerText;XmlAttributeCollection attriCol = nameEle.Attributes;XmlAttribute attri = attriCol["lang"];skillObj.Lang = attri.Value;XmlElement damageEle = skill["damage"];skillObj.Damage = Int32.Parse(damageEle.InnerText);list.Add(skillObj);*/// xml获取子节点和属性值方案二Skill skillObj = new Skill();foreach (XmlNode node in skill.ChildNodes){// Console.WriteLine(node.Name + ":" + node.InnerText);/** id: 1* name: 大慈大悲手*damage:166*id: 2*name: 佛落掌*damage:366*id: 3*name: 如来*damage:666*/if (node.Name == "id"){// 将数字的字符串表示形式转换为它的等效 32 位有符号整数。skillObj.ID = Int32.Parse(node.InnerText);}else if(node.Name == "name"){// 获取或设置节点及其所有子节点的串连值。skillObj.Name = node.InnerText;// 获取 System.Xml.XmlAttributeCollection 包含此节点的属性。skillObj.Lang = node.Attributes[0].Value;}else{skillObj.Damage = Int32.Parse(node.InnerText);}}// 将skillObj的值依次存入列表list.Add(skillObj);}foreach (Skill s in list){Console.WriteLine(s.ID + "," + s.Name + "," + s.Lang + "," + s.Damage);/*1,大慈大悲手,cn,1662,佛落掌,cn,3663,如来,cn,666*/}} 
 
// 结果
 
