Pergunta

Eu preciso ser capaz obter um único atributo específico de um elemento com um nome local específico, mas qualquer namespace (se você estiver familiarizado com XMPP você vai entender o porquê). Além de escrever meu próprio (recenseador ou selecione individuais) métodos de extensão, todas as idéias?

Eu tenho o seguinte, mas eu não gosto em tudo:

        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>();

edit: gostaria de algo como:

        string val = (string)elem.Attribute("{*}to");

Solução:

        XAttribute from = elem.Attributes()
            .FirstOrDefault(a => a.Name.LocalName == "from");

        XAttribute to = elem.Attributes()
            .FirstOrDefault(a => a.Name.LocalName == "to");
Foi útil?

Solução

Se você não gosta da sintaxe, você pode usar este;

elem.Attributes().FirstOrDefault(a=>a.Name.LocalName == "from");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top