我的xml文件中有几个项目,但只有一个和第一个加载。我不确定发生了什么。但是当我输出e.Result字符串时,所有项目都显示出来。不知何故,这些项目不会通过xml文件进行解析。
<?xml version="1.0" encoding="utf-8" ?>
<Images>
<Image>hello.jpg</Image>
<Image>goodbye.jpg</Image>
<Image>flower.jpg</Image>
<Image>bird.jpg</Image>
</Images>
代码:
WebClient wc = new WebClient();
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadStringAsync(new Uri("Data.xml", UriKind.RelativeOrAbsolute));
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
string result = e.Result;
byte[] byteArray = Encoding.UTF8.GetBytes(result);
MemoryStream stream = new MemoryStream(byteArray);
int index = 0;
foreach (XElement element in xdoc.Descendants("Images").ToList())
{
index += 1;
}
Label l = new Label();
l.Content = index.ToString();
listBox1.Items.Add(l);
}
// outputs 1 - WTF?
答案 0 :(得分:3)
XML文档中只有1个“Images”元素,因此xdoc.Descendants("Images")
只返回1个元素。如果您需要单独的<Image>
元素,则应使用xdoc.Descendants("Image")
或xdoc.Descendants("Images").Elements()