簡體   English   中英

在 XDocument 中查找元素

[英]Find Element in XDocument

我有這個xml:

<List>
  <Element>
    <ID>1</ID>
    <property>19</property>
  </Element>
  <Element>
    <ID>2</ID>
    <property>11</property>
  </Element>
  <Element>
    <ID>3</ID>
    <property>5</property>
  </Element>
</List>

不,我喜歡我的代碼給我 ID 為 3 的元素。

我試過這個:

var node = doc.Descendants().Where(n => n.Elements().Where(x=>x.Name == id.ToString()).FirstOrDefault()!=null).FirstOrDefault();

但是發生了這個異常:

System.Private.Xml.dll 中發生類型為“System.Xml.XmlException”的異常,但未在用戶代碼中處理名稱不能以“3”字符開頭,十六進制值 0x33

我怎樣才能獲得第三個元素?

這是因為您將 XMLElement 的名稱與您的id進行比較,並且 XML 規范規定元素的名稱不能以數字開頭。 因此,不要與名稱進行比較,而是與值進行比較,如下所示:

var node = doc.Descendants()
    .Where(n => n.Elements()
         // I Changed 'x.Name' to 'x.Value' here
        .Where(x => x.Value == id.ToString())
    .FirstOrDefault()!=null)
.FirstOrDefault();

暫無
暫無

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

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