标签:对话 first splay 文件输入 xml解析 nod 节点 技术 代码
(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 }
标签:对话 first splay 文件输入 xml解析 nod 节点 技术 代码
原文地址:https://www.cnblogs.com/yx-xiansheng/p/8805129.html