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