我有这个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());
}
}
答案 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
的嵌套元素 - 它们没有任何。