[英]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.