如何访问XmlDocument对象的Root属性?

时间:2013-04-02 11:24:00

标签: c# xml

我正在尝试查询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属性?

2 个答案:

答案 0 :(得分:4)

您的xmlDoc对象的类型为XmlDocumentXmlDocument does not have a property called Root

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

XmlElement root = xmlDoc.DocumentElement;

应该注意DocumentElement的类型为XmlElement,而XmlElement不包含名为Elements的属性,因此您需要查找替代方案如果您选择坚持XmlDocument

,那该属性

但是在您的情况下,您可能会XmlDocumentXDocument类混淆, 包含Root类型XElement的属性3}},Elements包含XmlDocument属性。

请将XDocument替换为XmlDocument,或重写linq查询以使用{{1}}语法。

答案 1 :(得分:3)

请务必将这些内容放在文件的顶部:

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

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

using Windows.Data.Xml.Dom;