在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 }