gpt4 book ai didi

c# - 如何从(我认为)没有标准格式的 XML 中检索值?

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:23 25 4
gpt4 key购买 nike

我似乎找不到有同样问题的文章。

我有一个这样的 XML 文件:

<user id="" name="" termsofuse="http://boardgamegeek.com/xmlapi/termsofuse">
<firstname value="" />
<lastname value="" />
<avatarlink value="N/A" />
<yearregistered value="" />
<lastlogin value="2012-10-04" />
<stateorprovince value="" />
<country value="" />
<webaddress value="" />
<xboxaccount value="" />
<wiiaccount value="" />
<psnaccount value="" />
<battlenetaccount value="" />
<steamaccount value="" />
<traderating value="363" />
</user>

我正在使用以下代码提取数据:

static string QueryTheData(XDocument doc)
{
var data = from item in doc.Descendants("user")
select new
{
avatarlink = item.Element("avatarlink").Value,
lastlogin = item.Element("lastlogin").Value,
};
var t = "";
foreach (var p in data)
t += p.ToString();
return t;
}

但是我返回的值是空的。我想知道是否是因为 XML 文件开始:

<user id="" name="" termsofuse="http://boardgamegeek.com/xmlapi/termsofuse">

而在我发现的所有示例中,XML 都是这样开头的:

<user> ... etc

如何以这种格式读取这些值?

最佳答案

您想获取属性value 的值。试试这个

avatarlink = item.Element("avatarlink").Attribute("value").Value

但我会走这条路

var list = doc.Descendants("user")
.Select(u=>u.Elements().ToDictionary(e=>e.Name.LocalName,e=>e.Attribute("value").Value))
.ToList();

其中最终列表的每一项都包含元素及其值的字典

var lastlogin = list[0]["lastlogin"];

关于c# - 如何从(我认为)没有标准格式的 XML 中检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12745729/

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