protected override async void OnNavigatedTo(NavigationEventArgs e) { rootPage = MainPage.Current; file = "status.xml"; StorageFile storageFile = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(file); XmlLoadSettings loadSettings = new XmlLoadSettings(); loadSettings.ProhibitDtd = false; loadSettings.ResolveExternals = false; doc = await XmlDocument.LoadFromFileAsync(storageFile, loadSettings); try { var results = doc.SelectNodes("descendant::result"); int num_results = 1; foreach (var result in results) { String id = results[num_results - 1].SelectSingleNode("descendant::id").FirstChild.NodeValue.ToString(); String status = results[num_results-1].SelectSingleNode("descendant::status").FirstChild.NodeValue.ToString(); listBox.Items.Add("ID: "+id+" "+ status); num_results += 1; } if (num_results==1) listBox.Items.Add("You don't have pending jobs."); } catch(Exception) { listBox.Items.Add("You don't have pending jobs."); } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { rootPage = MainPage.Current; listBox.Items.Add("Index"); StorageFile storageFile; file = "history.xml"; storageFile= await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(file); XmlLoadSettings loadSettings = new XmlLoadSettings(); loadSettings.ProhibitDtd = false; loadSettings.ResolveExternals = false; doc = await XmlDocument.LoadFromFileAsync(storageFile, loadSettings); var results = doc.SelectNodes("descendant::result"); int num_results = 1; foreach (var result in results) { listBox.Items.Add(num_results.ToString()); num_results += 1; } if (num_results > 1) //show the first history result { listBox.SelectedIndex = 1; select_item(0); } //rootPage.NotifyUser(doc.InnerText.ToString(), NotifyType.StatusMessage); }
public async Task init() { var loadSettings = new Windows.Data.Xml.Dom.XmlLoadSettings(); loadSettings.ProhibitDtd = true; loadSettings.ResolveExternals = false; if (dbFile == null) { // 保存取得的文章数据 // 获取当前应用的配置文件夹(支持可同步的) StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; // 打开RSS源XML配置文件,如果不存在则创建 dbFile = await localFolder.CreateFileAsync("feeditems_database.xml", CreationCollisionOption.OpenIfExists); // 如果应用为第一次运行,则复制基础database文件 ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; object noDatabase = localSettings.Values["noDatabase"]; if (noDatabase == null) { StorageFolder templateFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("data"); StorageFile templateFile = await templateFolder.CreateFileAsync( "feeditems_database.xml", CreationCollisionOption.OpenIfExists); await templateFile.CopyAndReplaceAsync(dbFile); localSettings.Values["noDatabase"] = true; } } if (dbDoc == null) { // 读取XML配置文件 dbDoc = await XmlDocument.LoadFromFileAsync(dbFile, loadSettings); } }
public async Task LoadPLISTAsync() { _folder = await KnownFolders.DocumentsLibrary.CreateFolderAsync(_name, CreationCollisionOption.OpenIfExists); await LoadLocalMetadata(); var settings = new XmlLoadSettings(); settings.ProhibitDtd = false; settings.ValidateOnParse = true; settings.ResolveExternals = true; try { XmlDocument xml = new XmlDocument(); bool noXml = false; try { var resonse = await new HttpClient().GetAsync(this._pList.AbsoluteUrl); resonse.EnsureSuccessStatusCode(); var str = await resonse.Content.ReadAsStringAsync(); xml.LoadXml(str, settings); //xml = await XmlDocument.LoadFromUriAsync(new Uri(this._pList.AbsoluteUrl), settings); } catch { noXml = true; } if (!noXml) { await ReadPList(xml); } else { var fileHandle = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"CustomizationAssets\Magazines.plist"); var stream = await fileHandle.OpenReadAsync(); var dataReader = new DataReader(stream.GetInputStreamAt(0)); var size = await dataReader.LoadAsync((uint)stream.Size); var str = dataReader.ReadString(size); dataReader.DetachStream(); stream.Dispose(); stream = null; if (str.Contains("<!DOCTYPE")) { var pos = str.IndexOf("<!DOCTYPE"); var end = str.IndexOf(">", pos + 7); if (end >= 0) str = str.Remove(pos, end - pos + 1); } xml.LoadXml(str, settings); await ReadPList(xml); } } catch { throw new Exception("Unable to download plist"); } }
public async Task<XmlDocument> LoadDatabase() { var loadSettings = new XmlLoadSettings { ProhibitDtd = false, ResolveExternals = true }; var folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Database"); var file = await folder.GetFileAsync("database.xml"); return await Windows.Data.Xml.Dom.XmlDocument.LoadFromFileAsync(file, loadSettings); }
private async Task loadXML() { storageFile = await Windows.Storage.ApplicationData.Current.RoamingFolder.CreateFileAsync("FavoriteFileStore.xml", CreationCollisionOption.OpenIfExists); Windows.Data.Xml.Dom.XmlLoadSettings loadSettings = new Windows.Data.Xml.Dom.XmlLoadSettings(); loadSettings.ProhibitDtd = false; // sample loadSettings.ResolveExternals = false; // sample document = new XmlDocument(); string content = await FileIO.ReadTextAsync(storageFile); if (!string.IsNullOrEmpty(content)) { document.LoadXml(content); } else { document.AppendChild(document.CreateElement("Favorites")); } }
public async Task LoadPLISTAsync() { _folder = await KnownFolders.DocumentsLibrary.CreateFolderAsync(_name, CreationCollisionOption.OpenIfExists); await LoadLocalMetadata(); var settings = new XmlLoadSettings(); settings.ProhibitDtd = false; settings.ValidateOnParse = true; settings.ResolveExternals = true; try { var xml = await XmlDocument.LoadFromUriAsync(new Uri(this._pList.AbsoluteUrl), settings); await ReadPList(xml); } catch { throw new Exception("Unable to download plist"); } }
public async void loadXML() { Windows.Storage.StorageFolder storageFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("XML"); // you can get the specific folder from KnownFolders or other folders via FolderPicker as well Windows.Storage.StorageFile storageFile = await storageFolder.GetFileAsync("FavoriteSuggestionList.xml"); Windows.Data.Xml.Dom.XmlLoadSettings loadSettings = new Windows.Data.Xml.Dom.XmlLoadSettings(); loadSettings.ProhibitDtd = false; // sample loadSettings.ResolveExternals = false; // sample XmlDocument doc = await XmlDocument.LoadFromFileAsync(storageFile, loadSettings); XmlNodeList groups = doc.SelectNodes("//FavoriteList/FavoriteItem"); foreach (var group in groups) { SkyDriveFile favoriteItem = new SkyDriveFile(group.Attributes[0].NodeValue.ToString(), group.Attributes[1].NodeValue.ToString(), group.Attributes[2].NodeValue.ToString()); favoriteItem.IsChecked = true; favoriteItem.ShowCheckBox = true; favoriteList.Add(favoriteItem); } }
public IAsyncOperation<IList<ItemKey>> NewRawAsync(string xml) { // For new items there should not be any item keys, // created, or updated dates because these will be new items var loadSettings = new XmlLoadSettings {ProhibitDtd = true}; var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml, loadSettings); // Do not convert these to a foreach loop since the collection // is modified by the remove XmlNodeList nodes = xmlDoc.GetElementsByTagName("thing-id"); for (int i = (int) nodes.Length - 1; i >= 0; i--) { IXmlNode node = nodes[i]; node.ParentNode.RemoveChild(node); } nodes = xmlDoc.GetElementsByTagName("updated"); for (int i = (int) nodes.Length - 1; i >= 0; i--) { IXmlNode node = nodes[i]; node.ParentNode.RemoveChild(node); } nodes = xmlDoc.GetElementsByTagName("created"); for (int i = (int) nodes.Length - 1; i >= 0; i--) { IXmlNode node = nodes[i]; node.ParentNode.RemoveChild(node); } // Our put things xml does not support <things> or <ArrayOfThings> // We just want to serialize <thing> repeatedly nodes = xmlDoc.GetElementsByTagName("thing"); var parsedXml = new StringBuilder(); for (int i = 0; i < nodes.Length; i++) { parsedXml.Append(nodes[i].GetXml()); } return PutRawAsync(parsedXml.ToString()); }
async private void capture_Click(object sender, RoutedEventArgs e) { XmlDocument doc; //doc is history doc string history_file_xml; ImageEncodingProperties imgFormat = ImageEncodingProperties.CreateJpeg(); StorageFile file = await KnownFolders.PicturesLibrary.CreateFileAsync("Photo.jpg", CreationCollisionOption.ReplaceExisting); await captureManager.CapturePhotoToStorageFileAsync(imgFormat, file); bt_capture.IsEnabled = false; rootPage.NotifyUser("Done saving images, connecting...", NotifyType.StatusMessage); StreamSocket socket = new StreamSocket(); HostName hostName= new HostName("rs1008linux01.cloudapp.net"); try { await socket.ConnectAsync(hostName, "12346"); } catch(Exception) { rootPage.NotifyUser("Error: Host server not available.", NotifyType.ErrorMessage); return; } rootPage.NotifyUser("Connected", NotifyType.StatusMessage); DataWriter writer= new DataWriter(socket.OutputStream); rootPage.NotifyUser("Uploading...", NotifyType.StatusMessage); byte[] data= new byte[1024]; Stream x= await file.OpenStreamForReadAsync(); long file_length = x.Length; long tail = file_length % 1024; double offset = 0; string progress; try { while (file_length > offset) { await x.ReadAsync(data, 0, 1024); offset = offset + 1024; if(file_length<offset) { byte[] temp = new byte[tail]; Array.Copy(data, temp, (int)tail); writer.WriteBytes(temp); } else writer.WriteBytes(data); progress = "Progress: " + (Math.Round(offset / x.Length * 100, 0)).ToString() + "%"; rootPage.NotifyUser(progress, NotifyType.StatusMessage); await writer.StoreAsync(); await writer.FlushAsync(); } } catch(Exception ex) { rootPage.NotifyUser(ex.Message, NotifyType.StatusMessage); return; } writer.DetachStream(); x.Dispose(); rootPage.NotifyUser("Uploading finished.", NotifyType.StatusMessage); byte[] buffer = new byte[128]; Stream results=socket.InputStream.AsStreamForRead(); var memoryStream = new MemoryStream(); results.CopyTo(memoryStream); buffer = memoryStream.ToArray(); //await socket.InputStream.ReadAsync(buffer.AsBuffer(), 128,InputStreamOptions.ReadAhead); socket.Dispose(); bt_capture.IsEnabled = true; concentration = Encoding.UTF8.GetString(buffer)+" nm"; //get concentration result geolocation.Text = concentration; rootPage.NotifyUser("Data generated.", NotifyType.StatusMessage); history_file_xml = "history.xml"; StorageFile storageFile = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(history_file_xml); XmlLoadSettings loadSettings = new XmlLoadSettings(); loadSettings.ProhibitDtd = false; loadSettings.ResolveExternals = false; doc = await XmlDocument.LoadFromFileAsync(storageFile, loadSettings); var rootnode = doc.SelectSingleNode("results"); IXmlNode child = doc.CreateElement("result"); rootnode.AppendChild(child); IXmlNode xml_id = doc.CreateElement("id"); xml_id.InnerText = "5"; child.AppendChild(xml_id); IXmlNode xml_date = doc.CreateElement("date"); xml_date.InnerText = "2016-2-19 4:12:12"; child.AppendChild(xml_date); IXmlNode xml_location = doc.CreateElement("location"); xml_location.InnerText = cityname; child.AppendChild(xml_location); IXmlNode xml_concentration = doc.CreateElement("concentration"); xml_concentration.InnerText = geolocation.Text; child.AppendChild(xml_concentration); IXmlNode xml_model= doc.CreateElement("model"); xml_model.InnerText = "Fluoride Ion"; child.AppendChild(xml_model); //rootPage.NotifyUser(doc.GetXml(), NotifyType.StatusMessage); await doc.SaveToFileAsync(storageFile); }
// Stub function for testing public static async Task<XDocument> LoadTestRssXml() { StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync("Test"); StorageFile storageFile = await storageFolder.GetFileAsync("TestRss.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 rtnTask = Task.Factory.StartNew(() => doc); return await rtnTask; }
public async Task<bool> LoadPLISTAsync() { bool isUpdated = false; _folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync(_name, CreationCollisionOption.OpenIfExists); if (_magazinesLocalUrl.Count == 0) { await LoadLocalMetadata(); await LoadLocalMetadataDownloaded(); } var settings = new XmlLoadSettings(); settings.ProhibitDtd = false; settings.ValidateOnParse = true; settings.ResolveExternals = true; try { XmlDocument xml = new XmlDocument(); bool noXml = false; try { var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("user-agent", "LibrelioWinRT"); var url = new Uri(this._pList.AbsoluteUrl); var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, url); var value = ApplicationData.Current.LocalSettings.Values["last_update"] as string; if (value == null) { var date = new DateTime(2012, 4, 15); ApplicationData.Current.LocalSettings.Values["last_update"] = date.ToUniversalTime().ToString("R"); value = ApplicationData.Current.LocalSettings.Values["last_update"] as string; } httpRequestMessage.Headers.IfModifiedSince = DateTime.Parse(value); var response = await httpClient.SendAsync(httpRequestMessage); //var resonse = await new HttpClient().GetAsync(this._pList.AbsoluteUrl); response.EnsureSuccessStatusCode(); var str = await response.Content.ReadAsStringAsync(); xml.LoadXml(str, settings); //xml = await XmlDocument.LoadFromUriAsync(new Uri(this._pList.AbsoluteUrl), settings); } catch (Exception ex) { if (ex.Message.Contains("304") || ex.Message.Contains("Not Modified")) return false; noXml = true; } if (!noXml) { await ReadPList(xml); isUpdated = true; } } catch { throw new Exception("Unable to download plist"); } return isUpdated; }
public async Task<XmlRpcResponse> CallRpc(string methodName, List<XmlRpcValue> parameters) { var sb = new StringBuilder(); var writer = XmlWriter.Create(sb); writer.WriteStartDocument(); writer.WriteStartElement("methodCall"); writer.WriteElementString("methodName", methodName); if (parameters != null && parameters.Count() > 0) { writer.WriteStartElement("params"); foreach (var parm in parameters) { writer.WriteStartElement("param"); writer.WriteStartElement("value"); parm.BuildXml(writer); writer.WriteEndElement(); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Dispose(); try { var client = new HttpClient(); if (Useragent != null) { client.DefaultRequestHeaders.UserAgent.Add(new Windows.Web.Http.Headers.HttpProductInfoHeaderValue(Useragent)); } var inputPars = sb.ToString(); var result = await client.PostAsync(_uri, new HttpStringContent(inputPars, Windows.Storage.Streams.UnicodeEncoding.Utf8, "text/xml")); var results = await result.Content.ReadAsStringAsync(); result.EnsureSuccessStatusCode(); result.Dispose(); client.Dispose(); sb.Clear(); var resultDoc = new Windows.Data.Xml.Dom.XmlDocument(); var settings = new XmlLoadSettings() { ElementContentWhiteSpace = false }; resultDoc.LoadXml(results.Trim(), settings); var node = resultDoc.SelectSingleNode("methodResponse"); if (node != null) { var ret = new XmlRpcResponse(node); return ret; } throw new XmlRpcException(801, "Response failed to return proper XML response"); } catch (Exception ex) { if (ex is XmlRpcException) { throw ex; } else { throw new XmlRpcException(800, ex.Message); } } return null; }