如何通过在xmldocument中使用子节点的属性值来获取父节点的属性值?

时间:2016-03-20 15:20:38

标签: c# xml

我有xml如下:

   <Root Details="false">
      <Product count="45" Name="Success">
               <Source Id="123" Name="58372">
                 <Project Id="ABC" Level = "Good">
                   <Rest of the document/>
                 </Project>
              </Source>
               <Source Id="456" Name="83729">
                 <Project Id="DEF" Level = "Better">
                   <Rest of the document/>
                 </Project>
              </Source>
              <Source Id="789" Name="29832">
                 <Project Id="GHI" Level = "BAD">
                   <Rest of the document/>
                 </Project>
              </Source>
       </Product>
    </Root>

我需要获取Source node&#39; s&#34; Name&#34;的值。通过使用项目节点&#34; Id&#34;属性值。即例如如果项目ID值为&#34; GHI&#34;然后我需要价值&#34; 29832&#34;。有没有办法得到这样的?

1 个答案:

答案 0 :(得分:0)

您是否研究过LINQ的XDocument和XElement类?代码就像(我在手机上,所以从记忆中做到这一点):

var doc = XDocument.Load(“your file.xml”); var sourceName = doc.Root.Elements(“Project”)。其中(p =&gt; p.Attribute(“Id”)。value ==“GHI”)。First()。Parent.Attribute(“Name”)。值;

每个xelement都有一个父属性。