ASP.NET |日常開發中讀寫XML詳解
- 前言
- 一、XML 概述
- 1.1 定義和結構
- 1.2 應用場景
- 二、讀取 XML 文件
- 2.1 使用XmlDocument類(DOM 方式)
- 2.2 使用XmlReader類(流方式)
- 三、寫入 XML 文件
- 3.1 使用XmlDocument類
- 3.2 使用XmlWriter類
- 結束語
- 優質源碼分享
ASP.NET |日常開發中讀寫XML詳解
,在ASP.NET日常開發中,XML(可擴展標記語言)是一種常用的數據交換格式,它被廣泛用于配置文件、數據傳輸和Web服務等場景。在.NET框架中,提供了多種類和方法來讀寫XML數據。以下是對ASP.NET中讀寫XML的詳解。
前言
????????在數字浪潮洶涌澎湃的時代,程序開發宛如一座神秘而宏偉的魔法城堡,矗立在科技的浩瀚星空中。代碼的字符,似那閃爍的星辰,按照特定的軌跡與節奏,組合、交織、碰撞,即將開啟一場奇妙且充滿無限可能的創造之旅。當空白的文檔界面如同深邃的宇宙等待探索,程序員們則化身無畏的星辰開拓者,指尖在鍵盤上輕舞,準備用智慧與邏輯編織出足以改變世界運行規則的程序畫卷,在 0 和 1 的二進制世界里,鐫刻下屬于人類創新與突破的不朽印記。
一、XML 概述
1.1 定義和結構
????XML(eXtensible Markup Language)是一種可擴展標記語言,用于存儲和傳輸數據。它的結構類似于 HTML,但更側重于數據的描述。
????XML 文檔由元素(element)、屬性(attribute)、文本(text)等組成。元素是 XML 的主要組成部分,以標簽(tag)形式存在,例如和是一對標簽,表示一個名為 “book” 的元素。元素可以包含其他元素、文本或屬性。屬性是在元素標簽內定義的名稱 - 值對,如中的genre就是屬性,其值為fiction。
1.2 應用場景
????數據存儲與交換:在不同系統之間交換數據時,XML 是一種常用的格式。例如,企業之間的電子數據交換(EDI)可能會使用 XML 來傳輸訂單信息、庫存信息等。
????配置文件:許多應用程序使用 XML 作為配置文件的格式。在ASP.NET中,web.config文件就是一個 XML 文件,用于配置應用程序的各種設置,如數據庫連接字符串、身份驗證模式等。
二、讀取 XML 文件
2.1 使用XmlDocument類(DOM 方式)
????加載 XML 文件:XmlDocument類提供了一種文檔對象模型(DOM)的方式來處理 XML。首先,需要加載 XML 文件。例如:
using System.Xml;
class Program
{static void Main(){XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("books.xml");// 后續處理}
}
????遍歷 XML 元素:可以通過XmlNode對象來遍歷 XML 文檔中的元素。例如,要遍歷根元素下的所有子元素,可以使用以下代碼:
XmlNode root = xmlDoc.DocumentElement;
foreach (XmlNode child in root.ChildNodes)
{if (child.NodeType == XmlNodeType.Element){Console.WriteLine(child.Name);}
}
????讀取元素屬性和文本內容:對于包含屬性和文本的元素,可以這樣讀取。假設 XML 中有一個元素,其中包含id屬性和title文本內容:
foreach (XmlNode bookNode in root.ChildNodes)
{if (bookNode.NodeType == XmlNodeType.Element && bookNode.Name == "book"){string id = bookNode.Attributes["id"].Value;string title = bookNode.InnerText;Console.WriteLine($"Book ID: {id}, Title: {title}");}
}
2.2 使用XmlReader類(流方式)
????順序讀取 XML 內容:XmlReader類提供了一種基于流的方式來快速讀取 XML 內容,適合處理大型 XML 文件。例如:
using System.Xml;
class Program
{static void Main(){using (XmlReader reader = XmlReader.Create("books.xml")){while (reader.Read()){if (reader.NodeType == XmlNodeType.Element && reader.Name == "book"){string id = reader.GetAttribute("id");reader.Read(); // 移動到元素內部的文本節點string title = reader.Value;Console.WriteLine($"Book ID: {id}, Title: {title}");}}}}
}
????性能優勢:與XmlDocument相比,XmlReader在處理大型 XML 文件時具有更好的性能,因為它不需要將整個 XML 文件加載到內存中構建 DOM 樹,而是以流的方式順序讀取,占用的內存資源較少。
三、寫入 XML 文件
3.1 使用XmlDocument類
????創建 XML 元素和屬性:可以通過XmlDocument創建新的 XML 元素和屬性。例如,創建一個新的book元素并添加到 XML 文檔中:
XmlDocument newXmlDoc = new XmlDocument();
XmlElement rootElement = newXmlDoc.CreateElement("books");
newXmlDoc.AppendChild(rootElement);
XmlElement bookElement = newXmlDoc.CreateElement("book");
bookElement.SetAttribute("id", "1");
XmlElement titleElement = newXmlDoc.CreateElement("title");
titleElement.InnerText = "New Book";
bookElement.AppendChild(titleElement);
rootElement.AppendChild(bookElement);
????保存 XML 文件:使用Save方法保存 XML 文件,例如newXmlDoc.Save(“new_books.xml”);。
3.2 使用XmlWriter類
????構建 XML 結構并寫入文件:XmlWriter提供了一種靈活的方式來構建和寫入 XML 內容。例如:
using System.Xml;
class Program
{static void Main(){using (XmlWriter writer = XmlWriter.Create("new_books.xml")){writer.WriteStartDocument();writer.WriteStartElement("books");writer.WriteStartElement("book");writer.WriteAttributeString("id", "1");writer.WriteElementString("title", "New Book");writer.WriteEndElement();writer.WriteEndElement();writer.WriteEndDocument();}}
}
????格式控制:可以通過設置XmlWriterSettings來控制 XML 文件的格式,如縮進、編碼等。例如:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create("new_books.xml", settings))
{// 寫入操作
}
????這樣寫入的 XML 文件會有縮進,更加美觀易讀。
結束語
????????親愛的朋友,無論前路如何漫長與崎嶇,都請懷揣夢想的火種,因為在生活的廣袤星空中,總有一顆屬于你的璀璨星辰在熠熠生輝,靜候你抵達。
???????? 愿你在這紛繁世間,能時常收獲微小而確定的幸福,如春日微風輕拂面龐,所有的疲憊與煩惱都能被溫柔以待,內心永遠充盈著安寧與慰藉。
????????至此,文章已至尾聲,而您的故事仍在續寫,不知您對文中所敘有何獨特見解?期待您在心中與我對話,開啟思想的新交流。
優質源碼分享
-
【百篇源碼模板】html5各行各業官網模板源碼下載
-
【模板源碼】html實現酷炫美觀的可視化大屏(十種風格示例,附源碼)
-
【VUE系列】VUE3實現個人網站模板源碼
-
【HTML源碼】HTML5小游戲源碼
-
【C#實戰案例】C# Winform貪吃蛇小游戲源碼
???? 💞 關注博主 帶你實現暢游前后端
???? 🏰 大屏可視化 帶你體驗酷炫大屏
???? 💯 神秘個人簡介 帶你體驗不一樣得介紹
???? 🎀 酷炫邀請函 帶你體驗高大上得邀請
???? ① 🉑提供云服務部署(有自己的阿里云);
???? ② 🉑提供前端、后端、應用程序、H5、小程序、公眾號等相關業務;
???? 如🈶合作請聯系我,期待您的聯系。
????注:本文撰寫于CSDN平臺,作者:xcLeigh(所有權歸作者所有) ,https://blog.csdn.net/weixin_43151418,如果相關下載沒有跳轉,請查看這個地址,相關鏈接沒有跳轉,皆是抄襲本文,轉載請備注本文原地址。
???? 親,碼字不易,動動小手,歡迎 點贊 ? 收藏,如 🈶 問題請留言(評論),博主看見后一定及時給您答復,💌💌💌
原文地址:https://blog.csdn.net/weixin_43151418/article/details/144309325(防止抄襲,原文地址不可刪除)