最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# XML基礎(chǔ)入門小結(jié)(XML文件內(nèi)容增刪改查清)

 更新時間:2022年04月02日 08:44:05   作者:追逐時光者  
本文主要介紹了C# XML基礎(chǔ)入門小結(jié)(XML文件內(nèi)容增刪改查清),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言:

最近對接了一個第三方的項目,該項目的數(shù)據(jù)傳輸格式是XML。由于工作多年只有之前在醫(yī)療行業(yè)的時候有接觸過少量數(shù)據(jù)格式是XML的接口,之后就幾乎沒有接觸過了。因此對于XML這塊自己感覺還是有很多盲點和不足的,所以自己通過一些網(wǎng)上的資料總結(jié)了一下XML相關(guān)知識點。

什么是XML?

  • XML是一種可擴展標(biāo)記語言(EXtensible Markup Language)。
  • XML是一種很像HTML的標(biāo)記語言。
  • XML的設(shè)計宗旨是傳輸數(shù)據(jù),而不是顯示數(shù)據(jù)。
  • XML標(biāo)簽沒有被預(yù)定義。您需要自行定義標(biāo)簽。
  • XML被設(shè)計為具有自我描述性。
  • XML是 W3C 的推薦標(biāo)準(zhǔn)。

XML的優(yōu)缺點

XML的優(yōu)點

  • 語法嚴(yán)謹(jǐn),格式統(tǒng)一,符合標(biāo)準(zhǔn)。
  • 容易與其他系統(tǒng)進(jìn)行遠(yuǎn)程交互,數(shù)據(jù)共享比較方便。

XML的缺點

  • 擴展性、彈性、易讀性均不佳。
  • XML文件龐大,文件格式復(fù)雜,傳輸占帶寬。
  • 服務(wù)器端和客戶端解析XML花費較多的資源和時間。

XML簡單示例

在線xml驗證工具:http://tools.jb51.net/code/xmlcodeformat

<?xml version="1.0" encoding="utf-8"?>
<books>
    <book>
        <author>追逐時光者</author>
        <title>XML學(xué)習(xí)教程</title>
        <publisher>時光出版社</publisher>
    </book>
</books>

XML中5個預(yù)定義的實體引用

轉(zhuǎn)義字符符號名稱
&amp;&和號
&lt;<小于
&gt;>大于
&apos;'省略號
&quot;"引號

嚴(yán)格地講,在 XML 中僅有字符 "<"和"&" 是非法的。省略號、引號和大于號是合法的。這時,Xml有兩種解決方案來處理這種問題。

CDATA

轉(zhuǎn)義字符

C#把特殊符號轉(zhuǎn)換為轉(zhuǎn)義字符

/// <summary>
        /// 特殊符號轉(zhuǎn)換為轉(zhuǎn)義字符
        /// </summary>
        /// <param name="xmlStr"></param>
        /// <returns></returns>
        public string XmlSpecialSymbolConvert(string xmlStr)
        {
            return xmlStr.Replace("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;").Replace("\'", "&apos;").Replace("\"", "&quot;");
        }

C#創(chuàng)建簡單的XML文件  

/// <summary>
        /// 創(chuàng)建Xml文件
        /// </summary>
        public void CreateXmlFile()
        {
            XmlDocument xmlDoc = new XmlDocument();
            //創(chuàng)建類型聲明節(jié)點  
            XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");
            xmlDoc.AppendChild(node);
            //創(chuàng)建Xml根節(jié)點  
            XmlNode root = xmlDoc.CreateElement("books");
            xmlDoc.AppendChild(root);

            XmlNode root1 = xmlDoc.CreateElement("book");
            root.AppendChild(root1);

            //創(chuàng)建子節(jié)點
            CreateNode(xmlDoc, root1, "author", "追逐時光者");
            CreateNode(xmlDoc, root1, "title", "XML學(xué)習(xí)教程");
            CreateNode(xmlDoc, root1, "publisher", "時光出版社");
            //將文件保存到指定位置
            xmlDoc.Save("D://xmlSampleCreateFile.xml");
        }

        /// <summary>    
        /// 創(chuàng)建節(jié)點    
        /// </summary>    
        /// <param name="xmlDoc">xml文檔</param>    
        /// <param name="parentNode">Xml父節(jié)點</param>    
        /// <param name="name">節(jié)點名</param>    
        /// <param name="value">節(jié)點值</param>    
        ///   
        public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value)
        {
            //創(chuàng)建對應(yīng)Xml節(jié)點元素
            XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);
            node.InnerText = value;
            parentNode.AppendChild(node);
        }

創(chuàng)建生成的Xml文件

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <author>追逐時光者</author>
    <title>XML學(xué)習(xí)教程</title>
    <publisher>時光出版社</publisher>
  </book>
</books>

C#在XML文件添加節(jié)點

這次我們是在上一次新建的XML文件中做操作,在book二級節(jié)點下添加一個新的節(jié)點名為publishdate(發(fā)布時間),該節(jié)點的value為2022-03-26。

private static void AppendNode()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件
            XmlNode root = xmlDoc.SelectSingleNode("books/book");//選擇要添加子節(jié)點的book節(jié)點
            //創(chuàng)建一個新的Xml節(jié)點元素
            XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, "publishdate", null);
            node.InnerText = "2022-03-26";
            root.AppendChild(node);//將創(chuàng)建的item子節(jié)點添加到items節(jié)點的尾部
            xmlDoc.Save("D://AppendNodeFile.xml");//保存修改的Xml文件內(nèi)容
        }

添加節(jié)點成功后的XML文件內(nèi)容

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <author>追逐時光者</author>
    <title>XML學(xué)習(xí)教程</title>
    <publisher>時光出版社</publisher>
    <publishdate>2022-03-26</publishdate>
  </book>
</books>

C#修改XML文件節(jié)點的數(shù)據(jù)

這次我們是在第一次新建的XML文件中做操作,把在book二級節(jié)點下的author的內(nèi)容改成:大姚同學(xué)

private static void UpdateXml()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件
            XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查找要修改的節(jié)點
            XmlNodeList xmlNodeList = xns.ChildNodes;//取出book節(jié)點下所有的子節(jié)點

            foreach (XmlNode xmlNode in xmlNodeList)
            {
                XmlElement xmlElement = (XmlElement)xmlNode;//將節(jié)點轉(zhuǎn)換一下類型
                if (xmlElement.Name=="author")//判斷該子節(jié)點是否是要查找的節(jié)點
                {
                    xmlElement.InnerText = "大姚同學(xué)";//設(shè)置新值
                    break;
                }
            }
            xmlDoc.Save("D://UpdateXml.xml");//保存修改的Xml文件內(nèi)容
        }

修改后的XML文件內(nèi)容

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <author>大姚同學(xué)</author>
    <title>XML學(xué)習(xí)教程</title>
    <publisher>時光出版社</publisher>
  </book>
</books>

C#刪除XML文件中的指定節(jié)點

這次我們是在第一次新建的XML文件中做操作,刪除author節(jié)點。

private static void DeleteXmlNode()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件
            XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查找要刪除的根節(jié)點

            #region 刪除author節(jié)點

            var delNode = xmlDoc.SelectSingleNode("books/book/" + "author");
            xns.RemoveChild(delNode);

            #endregion

            xmlDoc.Save("D://DeleteXmlNode.xml");//保存操作后的Xml文件內(nèi)容
        }

C#清空指定XML節(jié)點數(shù)據(jù)

這次我們是在第一次新建的XML文件中做操作,清空author節(jié)點下的數(shù)據(jù)。

private static void ClearDataXmlNode()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件
            XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查找要刪除的根節(jié)點

            #region 清空author節(jié)點下的數(shù)據(jù)
            XmlNodeList xmlNodeList = xns.ChildNodes;//取出book節(jié)點下所有的子節(jié)點
            foreach (XmlNode xmlNode in xmlNodeList)
            {
                XmlElement xmlElement = (XmlElement)xmlNode;//將節(jié)點轉(zhuǎn)換一下類型
                if (xmlElement.Name == "author")//判斷該子節(jié)點是否是要查找的節(jié)點
                {
                    //清空author節(jié)點下的數(shù)據(jù)
                    xmlElement.RemoveAll();//刪除該節(jié)點的全部內(nèi)容
                }
            }
            #endregion

            xmlDoc.Save("D://ClearDataXmlNode.xml");//保存操作后的Xml文件內(nèi)容
        }

學(xué)習(xí)參考資料

w3cSchool-XML 教程

.NET中XML序列化和反序列化常用類和用來控制XML序列化的屬性總結(jié)

到此這篇關(guān)于C# XML基礎(chǔ)入門小結(jié)(XML文件內(nèi)容增刪改查清)的文章就介紹到這了,更多相關(guān)C# XML基礎(chǔ)入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實現(xiàn)Base64編碼與解碼及規(guī)則

    C#實現(xiàn)Base64編碼與解碼及規(guī)則

    這篇文章主要介紹了C#實現(xiàn)Base64編碼與解碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • C#編寫COM組件的方法分析

    C#編寫COM組件的方法分析

    這篇文章主要介紹了C#編寫COM組件的方法,結(jié)合實例形式分析了C#編寫COM組件的具體步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • C#中的多線程多參數(shù)傳遞詳解

    C#中的多線程多參數(shù)傳遞詳解

    第一種解決方案的原理是:將線程執(zhí)行的方法和參數(shù)都封裝到一個類里面。通過實例化該類,方法就可以調(diào)用屬性來實現(xiàn)間接的類型安全地傳遞多個參數(shù)
    2014-01-01
  • C#學(xué)習(xí)筆記- 隨機函數(shù)Random()的用法詳解

    C#學(xué)習(xí)筆記- 隨機函數(shù)Random()的用法詳解

    下面小編就為大家?guī)硪黄狢#學(xué)習(xí)筆記- 隨機函數(shù)Random()的用法詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • C#利用QrCode.Net生成二維碼(Qr碼)的方法

    C#利用QrCode.Net生成二維碼(Qr碼)的方法

    QrCode.Net是一個使用C#編寫的用于生成二維碼圖片的類庫,使用它可以非常方便的為WinForm、WebForm、WPF、Silverlight和Windows Phone 7應(yīng)用程序提供二維碼編碼輸出功能。可以將二維碼文件導(dǎo)出為eps格式
    2016-12-12
  • C#中BitmapImage與BitmapSource接口的區(qū)別對比小結(jié)

    C#中BitmapImage與BitmapSource接口的區(qū)別對比小結(jié)

    BitmapImage和BitmapSource都可以用于表示和顯示圖像,本文就來介紹一下C#中BitmapImage與BitmapSource接口的區(qū)別對比,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • C#調(diào)用dos窗口獲取相關(guān)信息的方法

    C#調(diào)用dos窗口獲取相關(guān)信息的方法

    這篇文章主要介紹了C#調(diào)用dos窗口獲取相關(guān)信息的方法,涉及C#調(diào)用dos窗口及進(jìn)程操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C# 通過ServiceStack 操作Redis

    C# 通過ServiceStack 操作Redis

    這篇文章主要介紹了C# 通過ServiceStack 操作Redis的示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • .net中常用的正則表達(dá)式

    .net中常用的正則表達(dá)式

    這篇文章介紹了.net中常用的正則表達(dá)式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#簡單輸出日歷的方法

    C#簡單輸出日歷的方法

    這篇文章主要介紹了C#簡單輸出日歷的方法,涉及C#針對日期與時間的簡單操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10

最新評論

凤山县| 涡阳县| 景东| 太湖县| 鄂伦春自治旗| 高密市| 玉树县| 郯城县| 隆子县| 遂昌县| 涞源县| 潜山县| 远安县| 金沙县| 贞丰县| 凤庆县| 汉阴县| 张掖市| 连云港市| 长垣县| 星子县| 玉门市| 车险| 浦东新区| 射阳县| 闻喜县| 渭源县| 江北区| 平乐县| 辽源市| 游戏| 茂名市| 二连浩特市| 三河市| 桓仁| 溆浦县| 运城市| 田林县| 台安县| 肇庆市| 泾源县|