在VS中编写XML实例程序

1、如下,在 VS 中分别新建  XML 文件、XML 解析类、XML 实体类

2、在项目中代码,如下

(1)XML 文件(注:在 VS 解决方案资源管理器中选中 XML 文件,点击属性将【复制到输出目录】中的“不复制”改为“如果较新则更新”)

<ProjectDialogsInfo>
<Dialog language="CN">
<Speak>英雄</Speak>
<Content>这是哪里?</Content>
</Dialog> <Dialog language="CN">
<Speak>NPC</Speak>
<Content>你好,欢迎来到亚特兰蒂斯地下城!</Content>
</Dialog> <Dialog language="CN">
<Speak>英雄</Speak>
<Content>你好,我是XML演示文件!</Content>
</Dialog>
</ProjectDialogsInfo>

(2)XML 实体类

/***
*
* 实体类:对话信息
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace XMLDemo1
{
class Dialogs
{
//语言
public string Language { set; get; }
//编号
public int Number { set; get; }
//说话人
public string Speaker { set; get; }
//对话内容
public string SpeakContent { set; get; }
}//class_end
}

(3)XML 解析程序

/***
*
* XML 解析程序
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; using System.Xml; //XML 命名空间
using System.IO; //文件输入输出流 namespace XMLDemo1
{
class XMLAnalysis
{
List<Dialogs> _LiDialogsArray; //存放集合 public XMLAnalysis()
{
_LiDialogsArray = new List<Dialogs>();
} /// <summary>
/// 解析XML
/// </summary>
public void AnalysisXML()
{
//XmlDocument:C#内置的XML解析方式
XmlDocument doc = new XmlDocument();
//加载 XML 文件
doc.Load("XMLFile1.xml");
//得到 XML 文件根节点
XmlNode node = doc.FirstChild;
//得到根节点后的节点集合
XmlNodeList nodeArray = node.ChildNodes; foreach (XmlNode nodeItem in nodeArray)
{
//实例化实体类
Dialogs diaObj = new Dialogs();
//得到属性信息(Attributes:包含节点属性)
diaObj.Language = nodeItem.Attributes[0].InnerText;
//字符串num、Speaker、Content对应XML文件中的标签
diaObj.Number = Convert.ToInt32(nodeItem["num"].InnerText);
diaObj.Speaker = nodeItem["Speaker"].InnerText;
diaObj.SpeakContent = nodeItem["Content"].InnerText;
//把单个实体对象加入集合
_LiDialogsArray.Add(diaObj);
}
} /// <summary>
/// 查看XML内容(需要先解析)
/// </summary>
public void DisplayXMLContent()
{
Console.WriteLine("显示XML如下内容:");
if (_LiDialogsArray!=null)
{
foreach (Dialogs diaItem in _LiDialogsArray)
{
Console.WriteLine("语言:"+diaItem.Language);
Console.WriteLine("编号:" + diaItem.Number);
Console.WriteLine("说话人:" + diaItem.Speaker);
Console.WriteLine("对话内容:" + diaItem.SpeakContent);
}
}
}
static void Main(string[] args)
{
XMLAnalysis obj = new XMLAnalysis();
//解析 XML
obj.AnalysisXML();
//显示 XML 内容
obj.DisplayXMLContent();
}
}//class_end
}

最新文章

  1. php扩展memcached和memcache的安装配置方法:转载
  2. 如何夯实(Java)编程基础,并深入学习和提高
  3. WampServer Apache 服务无法启动解决办法
  4. 提高生产性工具 - Model代码生成器(二)
  5. 第六章 jQuery和ajax应用
  6. JSP(forward动作)登录功能
  7. JS手机端去除默认自带的选择复制菜单
  8. Android中JNI 的一些常用Method说明
  9. 新建WindowsPhone项目时提示未将对象引用设置到对象的实例
  10. LoadRunner性能测试-loadrunner工具破解
  11. Intent的Data和Type和Flag属性-amdroid学习之旅(五十一)
  12. windows批量停止服务
  13. PAT (Basic Level) Practise - 成绩排名
  14. [20180408]那些函数索引适合字段的查询.txt
  15. js中关于Blob对象的介绍与使用
  16. bufferIO,Direct io,mmap, ZeroCopy
  17. King&#39;s Quest POJ - 1904(强连通分量)
  18. linux-radhat-gitlab服务搭建
  19. 【洛谷】【线段树+位运算】P2574 XOR的艺术
  20. Scala_类和对象

热门文章

  1. 从零开始升级基于RuleBased的聊天机器人
  2. codeforce F. Multicolored Markers
  3. javaweb项目启动脚本
  4. ERNIE1-2
  5. vscode代码片段
  6. java中overload与override的区别
  7. Windows 脚本放到 Linux 服务器不生效的问题 /bin/bash^M: bad interpreter: No such file or directory
  8. 通过parameters用python造数据
  9. 2023最新版Selenium 4.6.0语法快速入门
  10. 【BOOK】数据存储--MongoDB