gpt4 book ai didi

C# - 读取 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:51:30 25 4
gpt4 key购买 nike

我正在尝试读取 XML 文件以便将数据集成到 Windows Phone 应用程序中。

我关注了其他一些主题,但我无法让它发挥作用(我觉得我快到了,但仍然遗漏了一些东西)。

我要读取的 XML 是:

<?xml version="1.0" encoding="utf-8"?>
<items>
<item value="0">status</item>
<item value="210">online</item>
<item value="22h 49m 49s">uptime</item>
<item value="90">latency</item>
<item value="423">maxplayers_ever</item>
<item value="263">maxplayers_week</item>
<item value="252">maxplayers</item>
</items>

它包含游戏服务器的信息。

我正在从 URL 读取它,这是我使用的代码:

    public class Item
{
public string Name { get; set; }
public string Value { get; set; }
}

private void LoadXMLFile()
{
WebClient wc = new WebClient();
wc.DownloadStringCompleted += HttpsCompleted;
wc.DownloadStringAsync(new Uri("https://www.forgottenlands.eu/data.xml.php"));
}

private void HttpsCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
this.Items.Add(new ItemViewModel() { LineOne = "TEST I REACH HTTPS" });

XDocument statusinfo = XDocument.Parse(e.Result, LoadOptions.None);

List<Item> items =
(from node in statusinfo.Elements("Item")
select new Item
{
Name = (string)node.Value,

Value = (string)node.Attribute("Value")

}).ToList();

foreach (var item in items)
this.Items.Add(new ItemViewModel() { LineOne = item.Name + " " + item.Value });

this.IsDataLoaded = true;
}
}

public void LoadData()
{
// Sample data; replace with real data
// the xml file contains your provided xml code

LoadXMLFile();
}

我似乎正确进入了 httpscompleted 函数,但我没有正确获取 XML 数据。

最佳答案

你目前的代码存在三个问题:

  • 您正在向 文档 请求 Item 元素,而不是文档根元素
  • 您要求的是 Item 元素而不是 item 元素
  • 您要求的是 Value 属性而不是 value 属性

我也不会为此使用查询表达式,因为它会使事情变得比它们需要的更复杂:

var items = statusInfo.Root.Elements("item")
.Select(node => new Item {
Name = (string) node,
Value = (string) node.Attribute("value")
})
.ToList();

关于C# - 读取 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18201934/

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