asp.net xml檔案讀取

 <?xml version="1.0" encoding="utf-8" ?>

<People>

   <person id="1" dep="行政">

       <name>Jason</name>

       <mobile>0911222333</mobile>

   </person>

   <person id="2" dep="財務">

       <name>Amy</name>

       <mobile>0922456333</mobile>

   </person>

   <person id="3" dep="資訊">

       <name>Alex</name>

       <mobile>0945886333</mobile>

   </person>

</People>

一個簡單的XML檔案

紅標處是給予一個person屬性(應該是這樣講?

讀取要用 xmlReader.GetAttribute("id");

其餘正常的地方就是以xmlReader.ReadString()讀取即可


XmlReader xmlReader = XmlReader.Create(htmlFileUpload.Value.ToString());

                while (xmlReader.Read())

                {

                    if (xmlReader.IsStartElement())

                    {

                        switch (xmlReader.Name.ToString())

                        {

                            case "person":

                                xmlReader.GetAttribute("id")

                                break;

                            case "name":

                                xmlReader.ReadString()

                                break;

                            case "mobile":

                                break;

                        }

                    }

                }

參考 https://blog.xuite.net/xiaolian/blog/list-view/58706701

https://www.itread01.com/article/1464052456.html


後續理解

讀取XML方法

XmlDocument myDoc = new XmlDocument();

myDoc.Load(strPath); //strPath 是檔案路徑,包含檔案名稱

依照 XML的欄位設定,可以這樣理解

<step1-a>

  <step2-a>

    <v1>123</v1>

    <v2>456</v2>

  </step2-a>

  <step2-b>

    ...

  </step2-b>

</step1-a>

是一層一層的下去的,XML是以list作為結構,裡面擺放XmlNode

因此List1也就是step1-a,List2則包含了step2-a和step2-b

因此要抓到第一層的資料

會是以 myDoc.SelectNodes 會抓到一個陣列,是以0當作起始

myDoc.SelectNodes("step1-a")[0] 抓取第一個step1-a 裡面有step2-a

就可以用 myDoc.SelectNodes("step1-a")[0].SelectNodes("step2-a") 抓取到目標List

接著假如要抓取step2-a裡面的值的話則可以使用

SelectSingleNode("v1") 抓取到值 值是node

留言

這個網誌中的熱門文章

無法載入檔案或組件 'System.IO.Compression' 或其相依性的其中之一。

MongoDB 入門

javascript 更改屬性及創建標籤