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