C#_XML文档浅析

1、定义

XML,指可拓展标记语言。被设计用来传输和存储数据。

2、语法规则

在这里插入图片描述

3、命名规则

在这里插入图片描述

4、C#中进行XML操作

1、在VS中新建一个文本文档“PlayerSkills”;
2、右键选择打开方式为“XML(文本)编辑器”;
3、进行xml操作,包括查询、增加、修改、删除和保存;

<skills>
  <skill01>
    <id>01</id>
    <name lang="china">无情冲锋</name>
    <damage>55</damage>
  </skill01>
  <skill02>
    <id>02</id>
    <name lang="china">背水一战</name>
    <damage>80</damage>
  </skill02>
  <skill03>
    <id>03</id>
    <name lang="english">guoshiwushaung</name>
    <damage>140</damage>
  </skill03>
</skills>
using System;
using System.Collections.Generic;
using System.Xml;
/*
 * XML操作
 * 2020/4/12
 * 引入XML
 * 使用XmlDocument解析xml文档
*/
namespace XML操作
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建技能信息列表,用来存储所有技能信息
            List<Skill> skillList = new List<Skill>();

            //XmlDocument专门用来解析xml文档
            XmlDocument xmlDoc = new XmlDocument();
            //选择要加载解析的xml文档
            xmlDoc.Load("PlayerSkills.txt");

            //XmlNode用来代表一个节点
            XmlNode rootNote = xmlDoc.FirstChild;   //得到根节点
            //得到根节点下面的子节点的集合
            //ChildNodes获取当前节点下面的所有子节点
            XmlNodeList skillNoteList = rootNote.ChildNodes;

            foreach (XmlNode killNode in skillNoteList)
            {
                Skill skill = new Skill();
                //获取fieidNode下的所有子节点
                XmlNodeList fieldNodeList = killNode.ChildNodes;
                foreach(XmlNode fieidNode in fieldNodeList)
                {
                    if (fieidNode.Name == "id")
                    {
                        //fieidNode.InnerText获取节点内部文本
                        skill.ID = int.Parse(fieidNode.InnerText);
                    }
                    else if (fieidNode.Name == "name")
                    {
                        skill.Name = fieidNode.InnerText;
                        //获取节点的属性
                        skill.Lang = fieidNode.Attributes[0].Value;
                    }
                    else if (fieidNode.Name == "damage")
                    {
                        skill.Damage= int.Parse(fieidNode.InnerText);
                    }
                }
                skillList.Add(skill);
            }
            foreach(Skill skillInfo in skillList)
            {
                Console.WriteLine(skillInfo);
            }
            Console.ReadKey();
        }
    }
}
namespace XML操作
{
    class Skill
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Lang { get; set; }
        public int Damage { get; set; }

        public override string ToString()
        {
            return string.Format("ID:{0}, Name:{1},Lang:{2}, Damage:{3}",ID,Name,Lang,Damage);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值