gpt4 book ai didi

c# - Xdocument 上的 Linq 查询返回 "System.linq.Enumerable+WhereSelectEnumerableIterator' 2[system.XML.Linq.Xelement,System.String]

转载 作者:行者123 更新时间:2023-11-30 13:45:51 26 4
gpt4 key购买 nike

我正在使用以下 XML:

<?xml version="1.0" encoding="windows-1252"?>
<hexML>
<head>
<title><![CDATA[ ]]></title>
<description><![CDATA Releases XML]]></description>
<flastmod date="2014-09-24T16:34:23 CET"/>
</head>
<body>
<press_releases>
<press_release id="1796256" joint_id="383320" language="fr" type="5">
<published date="2014-06-19T11:55:09 CET"/>
<categories>

<category id="75" label="French" keywords="language"/>

</categories>
<headline><![CDATA[Test Release for Website 3]]></headline>
<ingress></ingress>
<location href="http://rthrthrthrtrt.com/test.xml"/>
</press_release>
</press_releases>
</body>
</hexML>

我正在尝试通过这段代码获取数据:

cp[cpt, 0] = (from c in xdoc.Descendants("press_release")
where (int)c.Attribute("id") == r
select c.Element("headline").Value).Single();

cp[cpt, 1] = (from c in xdoc.Descendants("press_release")
where (int)c.Attribute("id") == r
select (c.Element("published").Attribute("date").Value)).ToString();

cp[cpt, 3] = (from c in xdoc.Descendants("press_release")
where (int)c.Attribute("id") == r
select c.Element("location").Attribute("href").Value).ToString();

第一条指令正确返回:网站 3 的测试版本。另一方面,另外两个返回“System.linq.Enumerable+WhereSelectEnumerableIterator'2[system.XML.Linq.Xelement,System.String]”。

谢谢你的帮助

注意:我使用的是 .NET V3.5

最佳答案

是的,那是因为您在查询第二个和第三个值时直接调用了 ToString() - 而在第一个 操作中,您调用了 Single() 将返回单个字符串值。

基本上,不要在查询时调用 ToString()。如果您想要单个值,请使用 Single()First() 等。如果您想要多个值,请遍历它们并使用它们中的每一个执行您想要的操作以某种适当的方式转动或将它们连接在一起。

请注意,这与 LINQ to XML 无关 - 这正是 LINQ to Objects 所做的:

using System;
using System.Linq;

class Test
{
static void Main()
{
string[] values = { "a", "b", "c" };
var query = values.Where(x => true);
Console.WriteLine(query);
Console.WriteLine(string.Join(";", query));
}
}

输出:

System.Linq.Enumerable+WhereArrayIterator`1[System.String]
a;b;c

关于c# - Xdocument 上的 Linq 查询返回 "System.linq.Enumerable+WhereSelectEnumerableIterator' 2[system.XML.Linq.Xelement,System.String],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26043472/

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