-4

我正在尝试查询 XMLDocument 并收到错误:

var query = from date in xmlDoc.Root.Elements("Serial")

错误大约是Root.

我的完整代码如下所示:

private async void Button_Click_1(object sender, RoutedEventArgs e) 
{ 
    StorageFile xmlFile = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync("Content‌​1.xml"); 
    XmlDocument xmlDoc; 
    xmlDoc = await XmlDocument.LoadFromFileAsync(xmlFile); 
    System.Xml.Linq.XDocument duc = System.Xml.Linq.XDocument.Parse(xmlDoc.GetXml()); 
    var query = from Date in xmlDoc.Root.Elements("Serial")
        where Date.Attribute("No").Value == "1";
}

如何访问对象的Root属性XmlDocument

4

2 回答 2

4

您的xmlDoc对象是 type XmlDocument,并且XmlDocument 没有名为 Root 的属性

要访问 的根XmlDocument,请使用DocumentElement属性

XmlElement root = xmlDoc.DocumentElement;

应该注意DocumentElement的是XmlElement类型,并且XmlElement不包含名为 的属性Elements,因此如果您选择坚持使用,则需要查找该属性的替代项XmlDocument

但是在您的情况下,您可能与XDocumentXmlDocument混淆了,该类确实包含一个称为XElement类型的属性,并且包含一个属性。RootXElementElements

因此,要么用 替换你XmlDocumentXDocument,要么重写你的 linq 查询以使用XmlDocument语法。

于 2013-04-02T16:08:23.743 回答
3

确保在文件顶部有这些:

using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.IO;

如果您正在编写 Windows 8“沉浸式”应用程序,请添加以下内容:

using Windows.Data.Xml.Dom;
于 2013-04-02T11:27:04.503 回答