C#讀寫XML文件


    讀寫xml文件需要引用using System.Xml;命名空間。

下面給幾個函數例子分別讀寫xml文件。

 

創建XML文件:

 1         //------------【函數:創建xml文件】------------    
 2 
 3         //filePath為Excel文件路徑名
 4         //nodeName根節點名稱
 5         //------------------------------------------------------------------------
 6         public static bool CreateNewXML(string filePath,string nodeName)
 7         {
 8             bool result = true;
 9             try
10             {
11                 //判斷文件夾是否存在
12                 string mystr1 = NiceFileProduce.CheckAndCreatPath(NiceFileProduce.DecomposePathAndName(filePath, NiceFileProduce.DecomposePathEnum.PathOnly));
13                 if (mystr1 != "error"&& nodeName!="")
14                 {
15                     XmlDocument xmlDoc = new XmlDocument();
16                     XmlNode header = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
17                     xmlDoc.AppendChild(header);
18 
19                     XmlElement xm = xmlDoc.CreateElement(nodeName);
20 
21                     xmlDoc.AppendChild(xm);
22 
23                     xmlDoc.Save(filePath);
24                 }
25                 else
26                 {
27                     result = false;
28                 }
29                 
30             }
31             catch
32             {
33                 result = false;
34             }
35 
36             return result;
37         }

 

 

向XML文件中添加有個節點:

 1         //------------【函數:創建新的節點node】------------    
 2 
 3         //filePath為Excel文件路徑名
 4         //nodeName節點名稱
 5         //nodeID節點屬性名稱
 6         //nodeIDValue節點屬性值
 7         //nodeText節點內容
 8         //------------------------------------------------------------------------
 9         public static bool AppendNewNode(string filePath,string nodeName,string nodeID,string nodeIDValue,string nodeText)
10         {
11             bool result = true;
12             try
13             {
14                 //判斷文件夾是否存在
15                 string mystr1 = NiceFileProduce.CheckAndCreatPath(NiceFileProduce.DecomposePathAndName(filePath, NiceFileProduce.DecomposePathEnum.PathOnly));
16                 if (mystr1 != "error" && nodeName != "")
17                 {
18                     XmlDocument xmlDoc = new XmlDocument();//新建XML文件
19                     XmlElement xm = null;
20                     if (!File.Exists(filePath))
21                     {
22                         XmlNode header = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
23                         xmlDoc.AppendChild(header);
24                         xm = xmlDoc.CreateElement(nodeName);
25                         xm.SetAttribute(nodeID, nodeIDValue);
26                         xm.InnerText = nodeText;
27                         xmlDoc.AppendChild(xm);
28                     }
29                     else
30                     {
31                         xmlDoc.Load(filePath);//加載XML文件
32                         XmlElement root = xmlDoc.DocumentElement;
33                         xm = xmlDoc.CreateElement(nodeName);
34                         xm.SetAttribute(nodeID, nodeIDValue);
35                         xm.InnerText = nodeText;
36                         root.AppendChild(xm);
37                     }
38 
39                     xmlDoc.Save(filePath);
40 
41                 }
42                 else
43                 {
44                     result = false;
45                 }
46             }
47             catch
48             {
49                 result = false;
50             }
51 
52             return result;
53         }

 

為XML文件指定節點添加一個子節點:

 1         //------------【函數:為節點node創建新的子節點node】------------    
 2 
 3         //filePath為Excel文件路徑名
 4         //nodeName節點名稱
 5         //nodeID節點屬性名稱
 6         //nodeIDValue節點屬性值
 7         //nodeText節點內容
 8         //FatherNode父節點
 9         //------------------------------------------------------------------------
10         public static bool AppendNodeToNode(string filePath, string nodeName, string nodeID, string nodeIDValue, string nodeText,string FatherNode)
11         {
12             bool result = true;
13             try
14             {
15                 //判斷文件是否存在
16                 if (File.Exists(filePath) && nodeName != ""&&FatherNode !="")
17                 {
18                     XmlDocument xmlDoc = new XmlDocument();//新建XML文件
19                     xmlDoc.Load(filePath);//加載XML文件
20 
21                     XmlElement xm = xmlDoc.CreateElement(nodeName);
22                     xm.SetAttribute(nodeID, nodeIDValue);
23                     xm.InnerText = nodeText;
24 
25                     XmlNode root = xmlDoc.GetElementsByTagName(FatherNode)[0];
26                     root.AppendChild(xm);
27 
28                     xmlDoc.Save(filePath);
29 
30                 }
31                 else
32                 {
33                     result = false;
34                 }
35             }
36             catch
37             {
38                 result = false;
39             }
40 
41             return result;
42         }

 

讀取XML文件中指定節點的值:

 1         //------------【函數:獲取節點node中的值】------------    
 2 
 3         //filePath為Excel文件路徑名
 4         //nodeName節點名稱
 5         //------------------------------------------------------------------------
 6         public static string ReadNodeFromXML(string filePath,string nodeName)
 7         {
 8             string result = "error";
 9             try
10             {
11                 //判斷文件是否存在
12                 if (File.Exists(filePath) && nodeName != "")
13                 {
14                     XmlDocument xmlDoc = new XmlDocument();//新建XML文件
15                     xmlDoc.Load(filePath);//加載XML文件
16 
17                     XmlNode xm = xmlDoc.GetElementsByTagName(nodeName)[0];
18                     result = xm.InnerText;
19 
20                 }
21                 else
22                 {
23                     result = "error";
24                 }
25             }
26             catch
27             {
28                 result = "error";
29             }
30             return result;
31         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM