从特定元素获取子元素

图卡利佩

成员
已加入
2017年7月7日
留言内容
8
编程经验
Beginner
建议使用LINQ而不是使用设置xml文件进行序列化。

根据参考(//docs.microsoft.com)我可以使用以下方法获取特定元素的值:

C#:
string grandChild3 = (string)      (from el in root.Descendants("GrandChild3")  
    select el).First();  
return grandChild3

他们的示例XML:

C#:
<Root>    <Child1>  
    <GrandChild1>GC1 Value</GrandChild1>  
  </Child1>  
  <Child2>  
    <GrandChild2>GC2 Value</GrandChild2>  
  </Child2>  
  <Child3>  
    <GrandChild3>GC3 Value</GrandChild3>  
  </Child3>  
  <Child4>  
    <GrandChild4>GC4 Value</GrandChild4>  
  </Child4>  
</Root>

该方法将返回一个带有<root><child3><GrandChild3>'s value.

但是,我使用的XML遵循以下结构:

C#:
<root>
    <section1>
        <setting1>
        <setting2>
        <setting3>
    </section1>
    <section2>
        <setting1>
        <setting4>
        <setting5>
    </section2>
</root>

我的代码欺骗:
C#:
string grandChild3 = (string)      (from el in root.Descendants("setting1")  
    select el).First();  
return setting1
通过使用el.First,我只会得到第一个<setting1>价值。如果我不使用。首先,我会得到一个清单 全部 <setting1>的。我该如何具体参考<setting1> element located in <section2>(或其他任何部分)。
 
Last edited:

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,051
地点
挪威
编程经验
10+
按元素访问:
var sample = root.Element("section2").Element("setting1").Value;
 
最佳 底部