狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#使用XML文件的詳解及示例

admin
2024年6月8日 22:48 本文熱度 1011

前言

XML是 Extensible Markup Language 的簡稱,用于存儲和傳輸數據的可擴展標記語言。它被應用在數據交換、數據存儲、Web服務、網絡協議等場景。
XML 具有可擴展性、結構化、標準化、簡單易讀等幾個特點。

基本結構

XML 基本結構包括文檔聲明、根元素、子元素、屬性、注釋、處理指令等部分。
<?xml version="1.0" encoding="UTF-8"?><根元素>  <子元素 屬性="屬性值">內容</子元素>  <!-- 注釋內容 -->  <?處理指令 ?></根元素>

文檔聲明

文檔聲明主要用于描述XML文檔的版本編碼格式,每個文檔必須包含一個聲明,并在文檔開頭。如下聲明:版本1.0 編碼格式為UTF-8。
<?xml version="1.0" encoding="UTF-8"?>

根元素

根元素包圍文檔中的所有數據,是其它元素的根,每個文檔必須有一個根元素。如下示例:有一個configure根元素,其下有其它內容。
<configure>  <Description>Fountain WinForm App</Description>  <Files>    <File Version="1.2.11.0" Name="log4net.dll" DateTime="2023-4-26" />  </Files></configure>

子元素

子元素是文檔的基本單元,它包含屬性、內容等元素。如下示例:
<name>Apple</name><File Version="1.2.11.0" Name="log4net.dll" DateTime="2023-4-26" />

屬性

元素可以有屬性,用于元素的額外信息它在開始標簽中定義,以名稱/鍵值對的形式出現。如下示例:File 元素存在Version、Name、DateTime屬性。
<File Version="1.2.11.0" Name="log4net.dll" DateTime="2023-4-26" />

注釋

注釋為文檔中添加注釋或說明,以<!--開始,以-->結束。如下示例:
<configure>  <Description>Fountain WinForm App</Description>  <Files>    <!-- 程序的所文件名稱、版本、更新日期 -->    <File Version="1.2.11.0" Name="log4net.dll" DateTime="2023-4-26" />  </Files></configure>

處理指令

處理指令提供了關于XML處理器如何處理文檔的指令。如下示例:標識 文檔的樣式表。
 <?xml-stylesheet type="text/xsl" href="sample.xsl"?>

命名空間

用于定義文檔中元素和屬性的范圍和作用域的機制。

文檔操作

通過System.XML命名空間中的類可以完成常用的操作。下表為操作XML文檔相關的類。
描述
XmlDocument創建、修改及保存XML文檔。
XmlNode表示 XML 文檔中的單個節點
XmlElement訪問元素的名稱、屬性和子元素。
XmlTextWriter提供快速、非緩存的寫入器。
XPathDocument提供只讀形式讀取XML文檔。
XPathNavigator提供瀏覽、提取XML節點 數據
XmlAttribute訪問XML屬性的名稱和值
XmlText訪問文本內容

創建文檔

通過 XmlDocument 的 CreateXmlDeclaration 對 XML 文檔進行聲明,再通過 CreateElement 創建 XML 元素,最后保存 XML 文件。下面通過代碼進一步了解 XML 文檔的創建。
using System;using System.IO;using System.Windows.Forms;using System.Xml;
namespace Fountain.WinForm.XMLDemo{    public partial class XMLDemoForm : Form    {        public XMLDemoForm()        {            InitializeComponent();        }        /// <summary>        /// 創建文檔        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void ButtonCreate_Click(object sender, EventArgs e)        {            try            {                XmlDocument xmlDocument = new XmlDocument();                // XML聲明                XmlDeclaration xmlDeclaration = xmlDocument.CreateXmlDeclaration("1.0", "utf-8", "yes");                xmlDocument.AppendChild(xmlDeclaration);                //創建根元素                XmlElement rootNode = xmlDocument.CreateElement("configure");                xmlDocument.AppendChild(rootNode);                // 創建 Description 子元素                XmlElement descSubElement = xmlDocument.CreateElement("Description");                //元素內容                descSubElement.InnerText = "Fountain WinForm App";                rootNode.AppendChild(descSubElement);
               // 創建 Updater 子元素                XmlElement updaterSubElement = xmlDocument.CreateElement("Updater");                rootNode.AppendChild(updaterSubElement);
               // 創建 url 子元素                XmlElement urlSubElement = xmlDocument.CreateElement("url");                //中間文本                urlSubElement.InnerText = "http://127.0.0.1/update";                // 添加到父結點                updaterSubElement.AppendChild(urlSubElement);
               XmlElement versionSubElement = xmlDocument.CreateElement("Version");                //中間文本                versionSubElement.InnerText = "3.8.0.24043";                // 添加到父結點                updaterSubElement.AppendChild(versionSubElement);
               // 創建 Files 子元素                XmlElement filesSubElement = xmlDocument.CreateElement("Files");                rootNode.AppendChild(filesSubElement);                // 創建 File 子元素                XmlElement fileSubElement = xmlDocument.CreateElement("File");                // 屬性                fileSubElement.SetAttribute("Version", "1.2.11.0");                fileSubElement.SetAttribute("Name", "log4net.dll");                fileSubElement.SetAttribute("DateTime", DateTime.Now.ToString("yyyy-MM-dd"));                filesSubElement.AppendChild(fileSubElement);                // 保存文檔                xmlDocument.Save(string.Format("{0}{1}{2}", Application.StartupPath,Path.DirectorySeparatorChar, "Version.xml"));            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);            }        }    }}
運行結果:
<?xml version="1.0" encoding="utf-8" standalone="yes"?><configure>  <Description>Fountain WinForm App</Description>  <Updater>    <url>http://127.0.0.1/update</url>    <Version>3.8.0.24043</Version>  </Updater>  <Files>    <File Version="1.2.11.0" Name="log4net.dll" DateTime="2024-04-13" />  </Files></configure>

讀取文檔

通過 XmlDocument 的 Load 對 XML 文檔進行加載XML文件,然后通過 SelectSingleNode 得到指定的節點元素,再通過 GetAttribute 得到具體的屬性值。下面通過代碼進一步了解 XML 文檔的讀取。
using System;using System.IO;using System.Text;using System.Windows.Forms;using System.Xml;
namespace Fountain.WinForm.XMLDemo{    public partial class XMLDemoForm : Form    {        public XMLDemoForm()        {            InitializeComponent();        }        /// <summary>        /// 讀取文檔        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void ButtonRead_Click(object sender, EventArgs e)        {            try            {                XmlDocument xmlDocument = new XmlDocument();                xmlDocument.Load(string.Format("{0}{1}{2}", Application.StartupPath, Path.DirectorySeparatorChar, "Version.xml"));                // 獲取 Files                XmlNode XmlNode = xmlDocument.SelectSingleNode("configure");                // 得到根節點的所有子節點                XmlNodeList xmlNodeList = XmlNode.ChildNodes;                StringBuilder stringBuilder = new StringBuilder();                // 循環讀取                foreach (XmlNode xmlNode in xmlNodeList)                {                    // 判斷節點是否有子節點                    if (xmlNode.ChildNodes.Count>0)                    {                        foreach (XmlNode subXmlNode in xmlNode.ChildNodes)                        {                            stringBuilder.AppendLine(string.Format("{0}:{1}", subXmlNode.Name, subXmlNode.InnerText));                            // 讀取元素屬性                            if (subXmlNode.Attributes!=null && subXmlNode.Attributes.Count>0)                            {                                for (int i = 0; i < subXmlNode.Attributes.Count;i++)                                {                                    stringBuilder.AppendLine(string.Format("{0}:{1} 屬性{2}={3}",                                        subXmlNode.Name,                                        subXmlNode.InnerText,                                        subXmlNode.Attributes[i].Name,                                        subXmlNode.Attributes[i].Value));                                }                            }                        }                        continue;                    }                    stringBuilder.AppendLine(string.Format("{0}:{1}", xmlNode.Name,xmlNode.InnerText));                }                // MessageBox.Show(stringBuilder.ToString());                Console.WriteLine(stringBuilder.ToString());            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);            }        }    }}
運行結果:
#text:Fountain WinForm Appurl:http://127.0.0.1/updateVersion:3.8.0.24043File:File: 屬性Version=1.2.11.0File: 屬性Name=log4net.dllFile: 屬性DateTime=2024-04-13

修改文檔

通過 XmlDocument 的 Load 對 XML 文檔進行加載XML文件,然后讀取到元素節點,對元素節點進行刪除、變屬性值、元素文本等,最后保存 XML 文件。下面通過代碼進一步了解 XML 文檔的修改。
using System;using System.IO;using System.Text;using System.Windows.Forms;using System.Xml;
namespace Fountain.WinForm.XMLDemo{    public partial class XMLDemoForm : Form    {        public XMLDemoForm()        {            InitializeComponent();        }        /// <summary>        ///  修改文檔        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void ButtonModify_Click(object sender, EventArgs e)        {            try            {                XmlDocument xmlDocument = new XmlDocument();                xmlDocument.Load(string.Format("{0}{1}{2}", Application.StartupPath, Path.DirectorySeparatorChar, "Version.xml"));                // 獲取根元素                XmlNode rootNode = xmlDocument.DocumentElement;                // 獲取主信息                XmlNodeList xmlNodeList = rootNode.SelectNodes("Updater");                foreach (XmlNode xmlNodeUpdate in xmlNodeList)                {                    XmlNodeList xmlNodeMainInfo = xmlNodeUpdate.ChildNodes;                    foreach (XmlNode xmlMainInfo in xmlNodeMainInfo)                    {                        if ("url".Equals(xmlMainInfo.Name,StringComparison.OrdinalIgnoreCase))                        {                            // 刪除 url 元素節點                            xmlNodeUpdate.RemoveChild(xmlMainInfo);                            break;                        }                    }                }                // 循環讀取                foreach (XmlNode xmlNode in xmlNodeList)                {                    if (xmlNode.ChildNodes.Count > 0)                    {                        foreach (XmlNode subXmlNode in xmlNode.ChildNodes)                        {                            if (subXmlNode.Attributes != null && subXmlNode.Attributes.Count > 0)                            {                                for (int i = 0; i < subXmlNode.Attributes.Count; i++)                                {                                    if ("DateTime".Equals(subXmlNode.Attributes[i].Name,StringComparison.OrdinalIgnoreCase))                                    {                                        // 修改元素節點屬性                                        subXmlNode.Attributes[i].Value = DateTime.Now.ToString("yyyy-MM-dd");                                    }                                }                            }                        }                        continue;                    }                }                xmlDocument.Save(string.Format("{0}{1}{2}", Application.StartupPath, Path.DirectorySeparatorChar, "Version.xml"));            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);            }        }    }}
運行結果:
<?xml version="1.0" encoding="utf-8" standalone="yes"?><configure>  <Description>Fountain WinForm App</Description>  <Updater>    <Version>3.8.0.24043</Version>  </Updater>  <Files>    <File Version="1.2.11.0" Name="log4net.dll" DateTime="2024-04-13" />  </Files></configure>

小結

以上 XML 文檔相關內容及在C#中如何實現對文件創建、修改、讀取的操作。


該文章在 2024/6/8 22:48:35 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved