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

C# 獲取XML文件內(nèi)容的多種方式總結(jié)

 更新時(shí)間:2023年01月24日 14:07:40   作者:Danny_hi  
這篇文章主要介紹了C# 獲取XML文件內(nèi)容的多種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C#獲取XML文件內(nèi)容的方式

首先設(shè)定有一個(gè)xml文件Configs.xml,其內(nèi)容如下:

<?xml version="1.0" encoding="utf-8" ?>
<Config>
? <Device name="aaa">
? ? <Type name="a01" func="1"></Type>
? ? <Type name="a02"></Type>
? ? <Type name="a03"></Type>
? ? <Type name="a04"></Type>
? </Device>
? <Device name="bbb">
? ? <Type name="b01"></Type>
? ? <Type name="b02"></Type>
? ? <Type name="b03"></Type>
? ? <Type name="b04"></Type>
? </Device>
? <Device name="ccc">
? ? <Type name="c01"></Type>
? ? <Type name="c02"></Type>
? ? <Type name="c03"></Type>
? ? <Type name="c04" func="2"></Type>
? </Device>
</Config>

一、讀取外部的XML文件方法

//獲取所有一級(jí)目錄
List<string> devices = new List<string>();
XmlDocument doc = new XmlDocument();
doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\TEMP\Configs.xml");
XmlNode xnl1 = doc.DocumentElement;
foreach (XmlNode xn1 in xnl1.ChildNodes)
{
? ? XmlElement xe1 = (XmlElement)xn1;
? ? devices.Add(xe1.GetAttribute("name").ToString());
}
return devices;
//獲取某個(gè)一級(jí)目錄下的子目錄
?List<string> types = new List<string>();
?XmlDocument doc = new XmlDocument();
?doc.Load(AppDomain.CurrentDomain.BaseDirectory + @"\TEMP\Configs.xml");
?XmlNode xnl1 = doc.DocumentElement;
?foreach (XmlNode xn1 in xnl1)
?{
? ? ?XmlElement xe1 = (XmlElement)xn1;
? ? ?if (xe1.GetAttribute("name").ToString() == "aaa")
? ? ?{
? ? ? ? ?XmlNodeList xnl2 = xe1.ChildNodes;
? ? ? ? ?foreach (XmlNode xn2 in xnl2)
? ? ? ? ?{
? ? ? ? ? ? ?XmlElement xe2 = (XmlElement)xn2;
? ? ? ? ? ? ?types.Add(xe2.GetAttribute("name").ToString());
? ? ? ? ?}
? ? ? ? ?break;
? ? ?}
?}
?return types;

二、讀取內(nèi)部XML文件方法

文件屬性:

復(fù)制到輸出目錄:不復(fù)制

生成操作:嵌入的資源

//獲取所有一級(jí)目錄
List<string> devices = new List<string>(); ? ? ? ??
string config= System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".Configs.Configs.xml";
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream s = assembly.GetManifestResourceStream(config);

XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create(s, settings);
XmlDocument doc = new XmlDocument();

doc.Load(reader);
XmlNode xn = doc.SelectSingleNode("Config");
XmlNodeList xnl1 = xn.ChildNodes;
foreach (XmlNode xn1 in xnl1)
{
? ? XmlElement xe1 = (XmlElement)xn1;
? ? devices.Add(xe1.GetAttribute("name").ToString());
}
reader.Close();
return devices;
//獲取某個(gè)一級(jí)目錄下的子目錄
List<string> types = new List<string>(); ? ? ? ? ??
string config= System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".Configs.Configs.xml";
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream s = assembly.GetManifestResourceStream(config);

XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create(s, settings);
XmlDocument doc = new XmlDocument();

doc.Load(reader);
XmlNode xn = doc.SelectSingleNode("Config");
XmlNodeList xnl1 = xn.ChildNodes;
foreach (XmlNode xn1 in xnl1)
{
? ? XmlElement xe1 = (XmlElement)xn1;
? ? if (xe1.GetAttribute("name").ToString() == "aaa")
? ? {
? ? ? ? XmlNodeList xnl2 = xe1.ChildNodes;
? ? ? ? foreach (XmlNode xn2 in xnl2)
? ? ? ? {
? ? ? ? ? ? XmlElement xe2 = (XmlElement)xn2;
? ? ? ? ? ? types.Add(xe2.GetAttribute("name").ToString());
? ? ? ? }
? ? ? ? break;
? ? }
}
reader.Close();
return types;

三、讀取類庫(kù)中XML文件的方法

文件屬性:

復(fù)制到輸出目錄:不復(fù)制

生成操作:Resource

List<Type> types = new List<Type>();
string fileName = AppDomain.CurrentDomain.BaseDirectory + "Config.dll";
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFile(fileName);
string resourceName = assembly.GetName().Name + ".g";
System.Resources.ResourceManager manager = new System.Resources.ResourceManager(resourceName, assembly);
object obj = manager.GetObject("asserts/config.xml");//全部字母小寫
System.IO.Stream stream = (System.IO.Stream)obj;

XmlDocument doc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;//忽略文檔里面的注釋,因?yàn)樵跊]有特別說明的情況下,注釋也是一個(gè)節(jié)點(diǎn)
XmlReader reader = XmlReader.Create(stream, settings);

doc.Load(reader);
XmlNode xn = doc.SelectSingleNode("Config");
XmlNodeList xnl1 = xn.ChildNodes;

foreach (XmlNode xn1 in xnl1)
{
? ? XmlElement xe1 = (XmlElement)xn1;
? ? Type type = new Type();
? ? type.name = xe1.GetAttribute("name").ToString();
? ? type.func = xe1.GetAttribute("func").ToString();
? ? XmlNodeList xnl0 = xe1.ChildNodes;
? ? type.Content = xnl0.Item(0).InnerText.Substring(1).TrimEnd();
? ? types.Add(type);
}
reader.Close();
return types;

四、讀取程序內(nèi)添加的外部可見的XML文件

文件屬性:

復(fù)制到輸出目錄:始終復(fù)制

生成操作:內(nèi)容

List<string> devices= new List<string>();
XmlDocument doc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create(@"Asserts\Config.xml", settings);

doc.Load(reader);
XmlNode xn = doc.SelectSingleNode("Config");
XmlNodeList xnl1 = xn.ChildNodes;

foreach (XmlNode xn1 in xnl1)
{
? ? XmlElement xe1 = (XmlElement)xn1;
? ? devices.Add(xe1.GetAttribute("name").ToString());
}
reader.Close();
return serialsList;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#控制IE進(jìn)程關(guān)閉和緩存清理的實(shí)現(xiàn)代碼

    C#控制IE進(jìn)程關(guān)閉和緩存清理的實(shí)現(xiàn)代碼

    這篇文章主要介紹了C#控制IE進(jìn)程關(guān)閉和緩存清理的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-04-04
  • C#實(shí)戰(zhàn)之備忘錄的制作詳解

    C#實(shí)戰(zhàn)之備忘錄的制作詳解

    這篇文章主要為大家介紹了如何利用C#制作一個(gè)備忘錄,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-02-02
  • c# 基于GMap.NET實(shí)現(xiàn)電子圍欄功能(WPF版)

    c# 基于GMap.NET實(shí)現(xiàn)電子圍欄功能(WPF版)

    這篇文章主要介紹了c# 基于GMap.NET實(shí)現(xiàn)電子圍欄功能(WPF版),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • c#之事件用法

    c#之事件用法

    這篇文章介紹了c#中事件的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#實(shí)現(xiàn)根據(jù)數(shù)字序號(hào)輸出星期幾的簡(jiǎn)單實(shí)例

    C#實(shí)現(xiàn)根據(jù)數(shù)字序號(hào)輸出星期幾的簡(jiǎn)單實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)根據(jù)數(shù)字序號(hào)輸出星期幾的簡(jiǎn)單實(shí)例,代碼簡(jiǎn)潔實(shí)用,也有助于初學(xué)者更好的理解C#的switch和if語(yǔ)句的流程控制,需要的朋友可以參考下
    2014-07-07
  • 利用微軟com組件mstscax.dll實(shí)現(xiàn)window7遠(yuǎn)程桌面功能

    利用微軟com組件mstscax.dll實(shí)現(xiàn)window7遠(yuǎn)程桌面功能

    利用微軟提供的com組件mstscax.dll實(shí)現(xiàn)類似window遠(yuǎn)程桌面功能,大家參考使用吧
    2013-12-12
  • C#實(shí)現(xiàn)十五子游戲

    C#實(shí)現(xiàn)十五子游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)十五子游戲的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#表達(dá)式樹基礎(chǔ)教程

    C#表達(dá)式樹基礎(chǔ)教程

    這篇文章介紹了C#表達(dá)式樹的基礎(chǔ)教程,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C#實(shí)現(xiàn)貝塞爾曲線的方法

    C#實(shí)現(xiàn)貝塞爾曲線的方法

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)貝塞爾曲線的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#中word導(dǎo)出功能的騷操作詳解

    C#中word導(dǎo)出功能的騷操作詳解

    這篇文章主要給大家介紹了關(guān)于C#中word導(dǎo)出功能騷操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評(píng)論

大城县| 红原县| 荥阳市| 东阳市| 怀远县| 江山市| 江川县| 长子县| 绵阳市| 阿鲁科尔沁旗| 怀宁县| 津市市| 象山县| 信宜市| 托克托县| 温泉县| 石嘴山市| 平顶山市| 广水市| 岚皋县| 报价| 托克托县| 安徽省| 海原县| 巩义市| 赤壁市| 南陵县| 读书| 信丰县| 霍山县| 鄂伦春自治旗| 邯郸市| 隆安县| 江西省| 略阳县| 永福县| 呈贡县| 和政县| 蒙阴县| 岳阳县| 梁平县|