Home [C# 筆記][XML] 讀取帶屬性的 XML 文檔
Post
Cancel

[C# 筆記][XML] 讀取帶屬性的 XML 文檔

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<Order>
  <CustomerName>Ken</CustomerName>
  <CustomerNumber>10001</CustomerNumber>
  <Items>
    <OrderItem Name="手機" Count="100" />
    <OrderItem Name="筆電" Count="200" />
    <OrderItem Name="Test" Count="888" />
  </Items>
</Order>

xpath

SelectNodes + XPath

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Xml;
static void Main(string[] args)
{
    //XPath:讀取帶屬性的 XML 文檔

    //創建xml物件
    XmlDocument doc = new XmlDocument();
    //載入xml
    doc.Load("Order.xml");
    XmlNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem");
    foreach (XmlNode node in xnl)
    {
        Console.WriteLine(node.Attributes["Name"].Value);
        Console.WriteLine(node.Attributes["Count"].Value);
    }
    Console.ReadKey();
}

改變屬性的值

XPath + SelectSingleNode XmlNode xn = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='Test']");

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//改變屬性的值
//創建xml物件
XmlDocument doc = new XmlDocument();
//載入xml
doc.Load("Order.xml");
//xpath SelectSingleNode
XmlNode xn = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='Test']");

//改變屬性的值
xn.Attributes["Count"].Value = "999";
xn.Attributes["Name"].Value = "Rii";

//儲存
doc.Save("Order.xml");
Console.WriteLine("儲存成功");
Console.ReadKey();
This post is licensed under CC BY 4.0 by the author.