国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

XML的基礎(chǔ)知識(shí)及XMl文件的創(chuàng)建/讀取/更新demo詳解

這篇具有很好參考價(jià)值的文章主要介紹了XML的基礎(chǔ)知識(shí)及XMl文件的創(chuàng)建/讀取/更新demo詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.什么是xml?

Xml(Extensible Markup Language),可擴(kuò)展標(biāo)記語言,一種用于存儲(chǔ)數(shù)據(jù)或傳輸數(shù)據(jù)的標(biāo)記語言,由萬維網(wǎng)(W3C開發(fā))。它允許開發(fā)人員創(chuàng)建自己的標(biāo)記,且簡單易讀,易擴(kuò)展,支持標(biāo)準(zhǔn)的字符編碼,如UFT-8,UTF-16.

2. Xml文檔的基本結(jié)構(gòu)

2.1文檔聲明,包括文檔版本(version)、編碼格式(encoding).

<?xml version = “1.0”,encoding = “UTF-8”?>

2.2根元素(root element)

Xml文檔必須包含一個(gè)根元素,其是xml文檔所有元素的父元素,如:

<root>

? <!--其他元素-->

</root>

2.3元素(element)

是xml文檔的基本單位,包含文本和屬性,元素用標(biāo)簽來標(biāo)識(shí),由<p>開始,</p>結(jié)束,如:

<p>這是一個(gè)段落</p>

2.4屬性(property)

屬性是元素的附加信息,屬性在開始標(biāo)簽中定義,并以鍵值對(duì)的形式出現(xiàn).如:

<p link = “www.baidu.com”這是一個(gè)鏈接/p>

2.5注釋(Comment)

注釋用于在xml文檔中添加解釋和說明,格式以<!--開始,以-->結(jié), 如下:

<!--這是我的注釋-->

3.C#對(duì)xml文檔的抽象

C#對(duì)xml文件進(jìn)行了結(jié)構(gòu)的抽象,支持xml文檔的創(chuàng)建、讀、寫等操作.

3.1 xml文檔被抽象成XmlDocument對(duì)象,Xml文檔對(duì)象可以用XmlReader和XmlWriter類對(duì)xml文件對(duì)象進(jìn)行讀寫

3.2 xml文檔的元素

被抽象為XmlElement對(duì)象,這些對(duì)象包含了元素的名稱,屬性,子元素

3.3 xml文檔的屬性

XmlAttribute包含了元素的屬性名稱和值

3.4Xml文檔的文本內(nèi)容

XmlText對(duì)象訪問文本內(nèi)容

3.5xml節(jié)點(diǎn)處理

XmlNodelist,XmlNodeReader,XmlNodeWriter,用于xml文檔的節(jié)點(diǎn)列表,讀取,寫入xml節(jié)點(diǎn).

以上的類都在System.Xml命名空間下,需要引入.

4.創(chuàng)建xml文件的demo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace _1.創(chuàng)建xml
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            
            //定義xml聲明信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            
            //xml聲明信息添加到文檔對(duì)象下
            doc.AppendChild(dec);

            //給xml文檔聲明行添加注釋
            doc.AppendChild(doc.CreateComment("line above is the declaration for the xml document"));

            //創(chuàng)建根元素的注釋
            XmlNode com = doc.CreateComment("line below is the root element");
            doc.AppendChild(com);
            
            //創(chuàng)建根節(jié)點(diǎn)
            XmlElement root = doc.CreateElement("Root");

            //將創(chuàng)建的Root元素添加到xml文檔的根節(jié)點(diǎn)中
            doc.AppendChild(root);

            //循環(huán)添加多個(gè)結(jié)構(gòu)相同的節(jié)點(diǎn)
            int subnodeCnt = 6;
            //定義隨機(jī)數(shù)對(duì)象,用于產(chǎn)生年齡
            Random rdm = new Random();
            for (int i = 0; i < subnodeCnt; i++)
            {
                //創(chuàng)建當(dāng)前元素的注釋
                XmlComment comment =  doc.CreateComment($"這是第{i + 1}個(gè)子節(jié)點(diǎn)");
                //將注釋添加到root下面
                root.AppendChild(comment);
                
                //創(chuàng)建當(dāng)前元素
                XmlElement element = doc.CreateElement($"學(xué)生{i + 1}");
                
                //給當(dāng)前元素添加屬性,如果當(dāng)前元素沒有ID屬性,則添加ID屬性;如果當(dāng)前元素有ID屬性,則更新ID屬性的值
                element.SetAttribute("ID", $"{i + 100}");

                //給當(dāng)前元素添加子元素,描述學(xué)生姓名信息
                XmlElement name = doc.CreateElement("name");
                name.InnerText = $"學(xué)生{i+1}";
                element.AppendChild(name);

                //給當(dāng)前元素添加子節(jié)點(diǎn),描述學(xué)生的年齡信息
                XmlElement age = doc.CreateElement("Age");
                
                age.InnerText = $"{rdm.Next(12, 19)}";
                
                element.AppendChild(age);
                
                //創(chuàng)建當(dāng)前元素到根目錄下
                root.AppendChild(element);
            }
            doc.Save(@"D:\dwang\myxml.xml");
        }
    }
}

.5.讀取xml文檔demo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace _2.讀取x_m_l
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 1;
            string path = $@"D:\dwang\myxml{i}.xml";
            XmlDocument doc = new XmlDocument();
            doc.Load(path);

            //獲取根節(jié)點(diǎn)
            XmlElement root = doc.DocumentElement;

            //獲取子節(jié)點(diǎn)(XmlNode是xmlElement,xmlComment的父類)
            foreach (XmlNode student in root.ChildNodes)
            {
                //忽略xml文件中的注釋節(jié)點(diǎn)(XmlComment)
                if (student as XmlElement == null)
                    continue;
                Console.Write($"{student.Name}--{((XmlElement)student).GetAttribute("name")}");
                foreach (XmlElement subnode in student.ChildNodes)
                {
                    Console.Write($"--{subnode.Name}--{subnode.InnerText}");
                }
                Console.Write("\r\n");
            }
            Console.ReadKey();
        }
    }
}

6.修改xml文檔的demo,包括更新節(jié)點(diǎn),添加節(jié)點(diǎn),刪除節(jié)點(diǎn)等.文章來源地址http://www.zghlxwxcb.cn/news/detail-844898.html

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace _3.修改xml
{
    class Program
    {
        static void Main(string[] args)
        {
            //添加節(jié)點(diǎn),修改節(jié)點(diǎn),刪除節(jié)點(diǎn)
            XmlDocument doc = new XmlDocument();

            //加載xml文檔
            string path = $@"D:\dwang\myxml1.xml";
            doc.Load(path);

            //獲取根節(jié)點(diǎn)
            XmlElement root = doc.DocumentElement;

            //獲取根節(jié)點(diǎn)名稱
            string name_RootNode = root.Name;

            //添加節(jié)點(diǎn)
            XmlElement newStudent = doc.CreateElement("newStuent");
            //設(shè)置newStuent元素的屬性
            newStudent.SetAttribute("ID", "888");
            
            //添加newStuent元素的子節(jié)點(diǎn)name,age
            XmlElement name = doc.CreateElement("name");
            name.InnerText = "newstuentName";
            newStudent.AppendChild(name);
            XmlElement age = doc.CreateElement("age");
            age.InnerText = "68";
            newStudent.AppendChild(age);

            //將新學(xué)生元素添加到根節(jié)點(diǎn)最后一個(gè)子元素后面
            root.InsertAfter(newStudent, root.ChildNodes[root.ChildNodes.Count-1]);

            //刪除指定的節(jié)點(diǎn)兩種常用方式(XPath)
            //刪除指定的節(jié)點(diǎn)兩種常用方式(XPath)
            //方式1
            XmlNode node1 = doc.SelectSingleNode(@"/Root/學(xué)生1");//注意節(jié)點(diǎn)的大小寫,否則會(huì)找不到節(jié)點(diǎn)
            XmlNode node1_parent = node1?.ParentNode;
            node1_parent?.RemoveChild(node1);//獲取指定的節(jié)點(diǎn)后,要用該節(jié)點(diǎn)的父節(jié)點(diǎn)對(duì)象刪除該節(jié)點(diǎn)
            //方式2
            XmlNode node = root.SelectSingleNode("http://學(xué)生2");
            if(node != null)
                root?.RemoveChild(node);
            
            //更新xml節(jié)點(diǎn)信息
            //獲取指定節(jié)點(diǎn)元素
            XmlElement student3 = doc.SelectSingleNode(@"/Root/學(xué)生3") as XmlElement;

            //更新ID屬性值
            student3?.SetAttribute("ID", "000001");

            //設(shè)置當(dāng)前節(jié)點(diǎn)的指定子節(jié)點(diǎn)的innerText
            if (student3 != null)
            {
                student3["Age"].InnerText = "28";
                student3["name"].InnerText = "Student--3";
            }
            //保存xml文檔
            doc.Save(path);
        }
    }
}

到了這里,關(guān)于XML的基礎(chǔ)知識(shí)及XMl文件的創(chuàng)建/讀取/更新demo詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包