缺少xml根元素

时间:2013-09-26 16:14:03

标签: c# xml

我有这个xml,我正在读取一个url,当我的viewsource看起来像这样:

<xml>
    <root>
        <item>
            <id>1</id>
            <name>Testing</name>
        </item>
        <item>
            <id>2</id>
            <name>Testing2</name>
        </item>
    </root>
</xml>

当我运行下面的代码时,它继续说根元素丢失了吗?我确实有一个根元素。

public void myfunction()
{
    WebRequest request = WebRequest.Create("http://www.site.com/file.xml");
    WebResponse response = request.GetResponse();
    Stream dataStream = response.GetResponseStream();

    string[] arr = XDocument.Load(dataStream).Root.Descendants("Name").Elements().Select(element => element.Value).ToArray(); //error says root element missing
    foreach (var item in arr)
    {
        MessageBox.Show(item.ToString());
    }
}

1 个答案:

答案 0 :(得分:0)

xml文件中没有Name个元素。 Xml区分大小写。您应该使用小写name

string[] arr = XDocument.Load(dataStream).Root
                        .Descendants("name")
                        .Select(name => (string)name)
                        .ToArray();

BTW您的name元素没有嵌套元素。

更新:如果您想获取name元素的值,则只需将这些元素转换为string。您也可以在此处使用Select(name => name.Value)。只是不要试图获得name的嵌套元素 - 它们没有任何。