LINQ解析-如何定位子对象

本文关键字:定位 对象 解析 何定位 LINQ | 更新日期: 2023-09-27 17:50:17

我有一个XML文件,看起来像这样:

<options>
    <!-- Set the start page of the module -->
    <startpage>google.com</startpage>
    <alloweddomains>
        <domain>mail.google.com</domain>
        <domain>calendar.google.com</domain>
    </alloweddomains>
</options>

我的代码是这样的:

 var xdoc = XDocument.Load("Options/Options.xml");
 var allowedDomains = xdoc.Descendants("alloweddomains")
                          .Attributes("domain");
 foreach (var xAttribute in allowedDomains)
 {
     Console.WriteLine("Allowed domains: " + xAttribute.Name); 
 }

它一直说我的allowedDomain是空的想法(不是xdoc)。我对域的定位是否错误?如果是,我如何瞄准域。

谢谢大家的建议。

LINQ解析-如何定位子对象

您的alloweddomains元素上没有名为domain的属性,您有元素

xdoc.Descendants("alloweddomains").Elements("domain");

或者,假设您在其他地方没有domain元素,您可以简单地执行

xdoc.Descendants("domain")