Xamarin PCL XML Json

在Xamarin的開發技術當中,常常會使用到PCL專案來做為跨平台的技巧,但該如何在PCL中解析XML資料呢?

James Tsai 2016/04/29 20:51:23
293

主題

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.FormsPCL專案,就算在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

James Tsai