Domanda

Devo essere in grado di ottenere un singolo attributo specifico da un elemento con un nome locale specifico ma qualsiasi spazio dei nomi (se hai familiarità con XMPP capirai perché). Oltre a scrivere i miei metodi di estensione (enumeratore o selezione singola), qualche idea?

Ho il seguente, ma non mi piace per niente:

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

modifica: vorrebbe qualcosa del tipo:

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

soluzione:

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

        XAttribute to = elem.Attributes()
            .FirstOrDefault(a => a.Name.LocalName == "to");
È stato utile?

Soluzione

Se non ti piace la sintassi, puoi usare questa;

elem.Attributes().FirstOrDefault(a=>a.Name.LocalName == "from");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top