2
我需要能夠從具有特定本地名稱但具有任何名稱空間的元素(如果您熟悉XMPP,您將理解爲什麼)獲取單個特定屬性。除了寫我自己的(枚舉或單選)擴展方法,還有什麼想法?LINQ:使用任何名稱空間,但具體名稱獲取屬性
我有以下的,但我不喜歡它:
XAttribute from = (from c in elem.Attributes()
where c.Name.LocalName == "from"
select c).FirstOrDefault<XAttribute>();
XAttribute to = (from c in elem.Attributes()
where c.Name.LocalName == "to"
select c).FirstOrDefault<XAttribute>();
編輯:想是這樣的:
string val = (string)elem.Attribute("{*}to");
解決方案:
XAttribute from = elem.Attributes()
.FirstOrDefault(a => a.Name.LocalName == "from");
XAttribute to = elem.Attributes()
.FirstOrDefault(a => a.Name.LocalName == "to");
XMPP中的大部分屬性都不在空名稱空間中嗎?我們幾乎沒有前綴,並且它們不會自動選取它們所在元素的名稱空間。 – 2008-11-18 06:05:24
@Joe,我的主要問題是「jabber:server」,「jabber:client」等等。 – 2009-01-15 15:00:55