gpt4 book ai didi

c# - 为什么这个 LINQ to XML 查询不起作用 (Amazon S3)

转载 作者:太空狗 更新时间:2023-10-29 18:24:21 24 4
gpt4 key购买 nike

鉴于此 XML ...

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>public.rpmware.com</Name>
<Prefix></Prefix>
<Marker></Marker>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>0.dir</Key>
<LastModified>2008-06-25T16:09:49.000Z</LastModified>
<ETag>"0ba2a466f9dfe225d7ae85277a99a976"</ETag>
<Size>16</Size>
<Owner>
<ID>1234</ID>
<DisplayName>kyle</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<!-- repeat similar 100x -->
</ListBucketResult>

还有这段 C# 代码:

XDocument doc =  XDocument.Load(xmlReader);
var contents = from content in doc.Descendants("Contents") select new {Key = content.Element("Key").Value, ETag = content.Element("ETag").Value};

foreach (var content in contents)
{
Console.WriteLine(content.Key);
Console.WriteLine(content.ETag);
}

我知道 Xdoc 不是空的并且包含正确的 XML。

我还实现了一些 ScottGu 代码 ( http://weblogs.asp.net/scottgu/archive/2007/08/07/using-linq-to-xml-and-how-to-build-a-custom-rss-feed-reader-with-it.aspx ) 作为完整性检查,它完全按预期工作。

XDocument doc2 = XDocument.Load(@"http://weblogs.asp.net/scottgu/rss.aspx");
var posts = from items in doc2.Descendants("item") select new { Title = items.Element("title").Value };
foreach (var post in posts)
{
Console.WriteLine(post.Title);
}

最佳答案

Xml 命名空间:

    XNamespace ns = "http://s3.amazonaws.com/doc/2006-03-01/";
var contents = from content in doc.Descendants(ns + "Contents")
select new { Key = content.Element(ns + "Key").Value,
ETag = content.Element(ns + "ETag").Value };

关于c# - 为什么这个 LINQ to XML 查询不起作用 (Amazon S3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/295911/

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