簡體   English   中英

如何使用xDocument和Linq選擇元素的孫元素

[英]How to Select a grandchild element of a element using xDocument and Linq

我有這個XML標記:

<preferences>
  <section name="PREF_SECTION_NAME_1">
    <preference name="PREF_EXAMPLE_1" type="text">
      <default value="false"></default>
    </preference>
    <preference name="PREF_EXAMPLE_2" type="radio">
      <default value="true"></default>
    </preference>
    <preference name="PREF_EXAMPLE_3" type="radio">
       <default value="false"></default>
    </preference>
  </section>
  <section name="PREF_SECTION_NAME_2">
    <preference name="PREF_EXAMPLE_4" type="radio">
      <default value="true"></default>
    </preference>
    <preference name="PREF_EXAMPLE_5" type="radio">
      <default value="false"></default>
    </preference>
    <preference name="PREF_EXAMPLE_6" type="radio">
      <default value="true"></default>
    </preference>
  </section>
</preferences>

我想獲取Preference屬性name =“PREF_EXAMPLE_2”時的默認值

我懂了:

var t = from p in xDocUser.Descendants("preference").Attributes("name").Where(d=>d.Value==preferencename) select p;

它給了我偏好的屬性,但不是它的子。

我該怎么辦?

是的,你要求偏好的屬性。 聽起來你真的想要這樣的東西:

var defaults = from pref in xDocUser.Descendants("preference")
               where (string) pref.Attribute("name") == preferenceName
               select (bool) pref.Element("default").Attribute("value");

這將為您提供所有匹配首選項的默認值的IEnumerable<bool>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM