gpt4 book ai didi

c# - UWP - 如何从 http 获取文件 (xml)?

转载 作者:行者123 更新时间:2023-12-01 22:23:10 29 4
gpt4 key购买 nike

我有这段代码来加载 xml(到列表),它工作正常:

public MainPage()
{
this.InitializeComponent();
string XMLFilePath = Path.Combine(Package.Current.InstalledLocation.Path, "something.xml");
XDocument loadedData = XDocument.Load(XMLFilePath);
}

如果我想从我的服务器调用 xml 怎么办!?

这是最后一次尝试:

using System.Net.Http;
using System.Runtime.Serialization.Json;

...

private string jsonString;

public MainPage()
{
this.InitializeComponent();

loadData();

//string XMLFilePath = Path.Combine(Package.Current.InstalledLocation.Path, "something.xml");
XDocument loadedData = XDocument.Load(jsonString);

...

private async void loadData()
{
var httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://domain.com/something.xml"));
jsonString = await response.Content.ReadAsStringAsync();
}

这是错误:

An exception of type 'System.ArgumentNullException' occurred in System.Xml.ReaderWriter.dll but was not handled in user code

任何帮助都会很棒。

谢谢。

最佳答案

您可以简单地使用 XmlDocument.LoadFromUriAsync | loadFromUriAsync methods从指定位置异步加载 XML 文档。该位置也可以是 Http 链接。

这里只是一个非常简单的测试:

<TextBlock x:Name="txt" />

后台代码:

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
XmlDocument xmlDoc = await XmlDocument.LoadFromUriAsync(new Uri("http://domain.com/something.xml"));
txt.Text = xmlDoc.GetXml().ToString();
}

请注意,此处 xml 文档的命名空间是 Windows.Data.Xml.Dom,而不是 System.Xml。我注意到您的 Uri 地址类似于 http://domain.com/something.xml,也许您正在使用 native 服务器,执行此操作时,您可能需要启用 项目 list 文件中的专用网络(客户端和服务器) 功能。

更新:

抱歉,我不知道你想使用LinQ,使用XDocument加载xml,基本上有两种方法:从字符串Uri或从流,但是对于第一种方法,Uri 参数必须是文件系统相对或绝对路径。

因此,这里的一种方法是您可以将 xml 保存到本地文件并使用 XDocument 再次加载它,或者您可以使用流来实现此目的,例如:

HttpClient client = new HttpClient();
var response = await client.GetStreamAsync("http://domain.com/something.xml");
XDocument xmlDoc = XDocument.Load(response);
txt.Text = xmlDoc.Document.ToString();

关于c# - UWP - 如何从 http 获取文件 (xml)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38174462/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com