在Xamarin的開發技術當中,常常會使用到PCL專案來做為跨平台的技巧,但該如何在PCL中解析XML資料呢?
主題: |
在Xamarin的開發技術當中,常常會使用到PCL專案來做為跨平台的技巧,但該如何在PCL中解析XML資料… |
文章簡介: |
在.NET中如果要解析XML資料時,我們通常可以用XmlDocument這個類別來處理,但很可惜的是在PCL的專案當中,沒有XmlDocument這個類別可以使用,那我們在PCL專案當中該怎麼處理XML的資料呢?讓本文章的介紹教你吧~ |
作者: |
James Tsai |
版本/產出日期: |
V1.0/2016.4.29 |
1. 前言
• 在.NET中如果要解析XML資料時,我們通常可以用XmlDocument這個類別來處理,但很可惜的是在PCL的專案當中,沒有XmlDocument這個類別可以使用,而是需要改用System.Xml.Linq這個命名空間底下的XDocument來處理。
2. 環境準備
• Windows 8/8.1/10
• Visual Studio 2015 / Xamarin Studio
3. 本文
在PCL中沒有XmlDocument這個類別解析XML的問題
• 在PCL專案沒有XmlDocument這個類別可以解析XML,所以就如下圖這麼簡單的XML資料,恐怕要處理都要費很大一番功夫。
使用System.Xml.Linq命名空間底下的XDocument來解決
• 還好天無絕人之路,我們不用自己在PCL當中撰寫處理XML的程式,在System.Xml.Linq這個命名空間底下,有個XDocument的類別可以讓我們來處理XML資料成一個物件。
• 在PCL的專案程式當中(圖中的程式為Xamarin.Forms的PCL專案,就算在Classic Xamarin當中的PCL也適用),先引用System.Xml.Linq這個命名空間。
• 然後再用XDocument當中的靜態方法Parse去讀取Xml的字串,並同時針對你的XML資料建立一個類別,可透過參考來源1的網站轉換。
• 接著再搭配一些Linq語句,就可以將你的XML資料轉換成物件了,如下圖紅色框的程式碼,而在下圖當中的綠色框是再透過Json.Net轉成json資料。
• 將該專案編譯對應的平台App執行起來後,看到Debug的輸出正確的Json資料。
4. 參考來源
• XmlToCsharp:
http://xmltocsharp.azurewebsites.net/
• Parse XML in Xamarin Forms
http://stackoverflow.com/ques t ions/31264588/parse-xml-in-xamarin-forms
• Convert XML to Object using LINQ
http://www.codeproject.com/Tips/366993/Convert-XML-to-object-using-LINQ
• Convert XML into Object using XML serialization (Deserialize from XML)
http://www.codeproject.com/Tips/367830/Convert-XML-into-Object-using-XML-serialization-De