当前位置: 首页 > news >正文

c#xml操作

简单的xml操作--解析技能xml

 

xml文件

<skills>
  
    <skill>
    <id>1</id>
    <name lang="cn">大荒囚天指</name>
    <demage>100</demage>     
  </skill>
  
  <skill>
    <id>2</id>
    <name lang="en">绝对零度</name>
    <demage>200</demage>
  </skill>
    
  <skill>
      <id>3</id>
      <name lang="ger">青龙魂</name>
      <demage>1000</demage>
  </skill>

</skills>

 

创建对应的skill类,重写了ToString方法 方便输出

class Skill
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Lang { get; set; }
        public int Demage { get; set; }

        public override string ToString()
        {
            return string.Format("Id:{0},Name:{1},Lang:{2},Demage:{3}", ID, Name, Lang, Demage);
        }
    }

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Xml;
 7 
 8 namespace xml操作
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             List<Skill> skillList = new List<Skill>();
15 
16             XmlDocument xmlDoc = new XmlDocument();
17             xmlDoc.Load("skillInfo.txt");
18 
19             //根节点
20             XmlNode root = xmlDoc.FirstChild;
21 
22             XmlNodeList skillsNodeList = root.ChildNodes;
23             foreach (XmlNode skillNode in skillsNodeList)
24             {
25                 Skill skill = new Skill();
26                 foreach (XmlNode filedNode in skillNode.ChildNodes)
27                 {
28                     if (filedNode.Name == "id")
29                     {
30                         skill.ID = int.Parse( filedNode.InnerText);
31                     }
32                     else if (filedNode.Name == "name")
33                     {
34                         skill.Name = filedNode.InnerText;
35                         skill.Lang = filedNode.Attributes[0].Value;
36                     }
37                     else if (filedNode.Name == "demage")
38                     {
39                         skill.Demage = int.Parse(filedNode.InnerText);
40                     }
41                 }
42                 skillList.Add(skill);
43             }
44 
45             foreach (var item in skillList)
46             {
47                 Console.WriteLine(item);
48             }
49         }
50     }
51 }

 

相关文章:

  • VC常用代码之创建进程
  • 第六章 对象作用域与servlet事件监听器
  • JavaScript HTML DOM 事件
  • 3D-HEVC的TAppDecorder
  • Hibenate second-level ehcache
  • JVM垃圾回收日志结构分析
  • MFC用户界面套包BCGControlBar Pro for MFC v24.3正式发布[附下载]
  • 线程的创建
  • Android EditText 多行,滚动条 等
  • C#中两个时间的比较
  • Eclipse导入第三方库或工程时出现红色叹号的解决方法
  • Redis Ltrim 命令
  • android Volley 使用
  • glob 模块
  • 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
  • [数据结构]链表的实现在PHP中
  • Akka系列(七):Actor持久化之Akka persistence
  • CentOS6 编译安装 redis-3.2.3
  • const let
  • es6--symbol
  • extjs4学习之配置
  • Laravel Mix运行时关于es2015报错解决方案
  • MySQL-事务管理(基础)
  • PermissionScope Swift4 兼容问题
  • python docx文档转html页面
  • Python3爬取英雄联盟英雄皮肤大图
  • Redis字符串类型内部编码剖析
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 从输入URL到页面加载发生了什么
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 数据结构java版之冒泡排序及优化
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​第20课 在Android Native开发中加入新的C++类
  • #define 用法
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (11)MSP430F5529 定时器B
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C语言)二分查找 超详细
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)Linux——Linux常用指令
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)计算机毕业设计高校学生选课系统
  • (南京观海微电子)——I3C协议介绍
  • (学习日记)2024.02.29:UCOSIII第二节
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net CHARTING图表控件下载地址
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Core中Emit的使用
  • .Net Remoting常用部署结构
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net 获取url的方法
  • .Net(C#)常用转换byte转uint32、byte转float等