我正在尝试查询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("Content1.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
属性?
答案 0 :(得分:4)
您的xmlDoc
对象的类型为XmlDocument
,XmlDocument does not have a property called Root。
要访问XmlDocument
的根目录,请使用DocumentElement属性
XmlElement root = xmlDoc.DocumentElement;
应该注意DocumentElement
的类型为XmlElement,而XmlElement
不包含名为Elements
的属性,因此您需要查找替代方案如果您选择坚持XmlDocument
但是在您的情况下,您可能会XmlDocument
与XDocument类混淆, 包含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;