win8/Metro开发系七 win8 对常见数据源的解析及处理 如:xml,json,以及html代码
首先還是那句話,我不是大牛,這些只是簡單的記錄一下學習的過程,沒有太多面向對象和設計模式的思維,只偏基礎,不喜莫笑;個人觀點如果有不足之處,還望多多指教!
導語:程序開發中往往涉及到各種數據源,所以就有那么一個問題對各種數據源怎么進行處理,并讓他在自己的程序中自由遨游,一般移動應用很大的數據都放在網上,通過數據接口來調用所以就會有各種各樣的格式,如常見的數據源html源碼,xml數據,json,對于這些數據處理方法有很多種,你可以選擇你喜歡的,接下來就分享一下我覺得簡單的易用的!
html:這東西是做一個合格的小偷必須要會的,誰用誰知道
方法一:正則表達式處理字符串
優點:通用,強大
缺點:適用范圍比較窄,簡單的還行,復雜的只適合正則大牛和閑的沒事干得把
配合工具:RegexTester
方法二:微軟的Ie組件
SeacherTool.dll微軟ie的解析內核這個原來用過幾次總體來說還算強大在添加引用com組件里面有的
好長時用的了記不清了大家自己可以用下
缺點:net平臺支持不算全面
優點:湊合勉強可以用用
方法三:java平臺下?HTMLParser
介紹這個的資料挺多,大家做java的可以用很強大
方法四:HtmlAgilityPack.1.4.6html解析
推薦這個強大易用只是net 2.0-4.5 sl所有版本,sl for wp也支持更重要的事在winrt4.5下也有
winrt下沒有xpath尋找了吧好像只支持按照id尋找
不過有這個就夠了可以省你很多工夫
代碼示例:
View Code HtmlAgilityPack.HtmlDocument htmlHelper = new HtmlAgilityPack.HtmlDocument();htmlHelper.LoadHtml(@htmlDoc);int i = 0;IEnumerable<HtmlAgilityPack.HtmlNode> m = htmlHelper.GetElementbyId("main").Elements("div");html的解析就介紹到這可能還有很多方法:大家探索可以一起交流下
2.json格式解析
son作為互聯網上輕量便捷的數據傳輸格式,越來越受到重視。但在服務器端編程過程中,我們常常希望能通過智能提示來提高編碼效率。JSON
格式網上數據很瘋狂,所以想從網上撈數據,那就好好分析下json吧
方法一:大家搜一搜把好像有兩個c#里面提供了好幾個序列化的類,來解析他們,我搜了半天用了不大好使 ,沒達到我想要的效果
大家如果有興趣就搜一下
方法二:我覺得這種方面快捷 適合快速開發:json.net
版本齊全好用:
代碼很簡單就不貼了 看看就會再附贈給大家倆個開源小工具把jsoN對象轉化成c#model
http://jsonclassgenerator.codeplex.com/
還有一個沒地址了給你json視圖查看器讓你方面查看json格式數據網站有在線的百度應用可以用
這東西也簡單開了就會,
有了這些東西也許json數據可以讓你操作自如了吧
?
接下來就是xml
xml不多說了大家都懂
xml我沒有找什么東西個人感覺net的linq to xml就挺偉大!
接下來看代碼,由于第一次調的時候別的地方出問題以為是linq查詢除了問題所以就索性把linq語句給換成if for了
一樣的思路linq內部也是這么實現的所以下面給出winRT下xml的讀取
簡單示例代碼:
public static async Task<XDocument> LoadXml(string sourceName){StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync("DataSources");StorageFile storageFile = await storageFolder.GetFileAsync(sourceName+".xml");XmlLoadSettings loadSettings = new XmlLoadSettings();loadSettings.ProhibitDtd = false;loadSettings.ResolveExternals = false;XmlDocument xmlDoc = await XmlDocument.LoadFromFileAsync(storageFile, loadSettings);XDocument doc = XDocument.Parse(xmlDoc.GetXml());var ReturnTask = Task.Factory.StartNew(() => doc);return await ReturnTask;}/// <summary>取得朝代/// /// </summary>/// <param name="ReturnTasks"></param>public static List<t_dynastyModel> GetT_dynasty(XDocument ReturnTasks){List<t_dynastyModel> t_dynasty = new List<t_dynastyModel>();foreach (var item in ReturnTasks.Descendants("t_dynasty")){t_dynastyModel temp = new t_dynastyModel();temp.d_dynasty = item.Element("d_dynasty").Value;temp.d_intro = item.Element("d_intro").Value;temp.d_intro2 = item.Element("d_intro2").Value;temp.d_num = item.Element("d_num").Value;t_dynasty.Add(temp);}return t_dynasty;}?
?
?
轉載于:https://www.cnblogs.com/cxing/archive/2012/11/04/xingwin8ReadData.html
總結
以上是生活随笔為你收集整理的win8/Metro开发系七 win8 对常见数据源的解析及处理 如:xml,json,以及html代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乱谈数学--我理解的函数极限运算
- 下一篇: html5 本地存储Web Storag