Frage

Ich muss in der Lage sein, ein einziges bestimmtes Attribut von einem Element erhalten mit einem bestimmten lokalen Namen, aber jeder Namespace (wenn Sie mit XMPP vertraut sind, werden Sie verstehen, warum). Abgesehen vom Schreiben meiner eigenen (enumerator oder einzelne select) Erweiterungsmethoden, irgendwelche Ideen?

Ich habe folgende, aber ich mag es nicht:

        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: möchte so etwas wie:

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

Lösung:

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

        XAttribute to = elem.Attributes()
            .FirstOrDefault(a => a.Name.LocalName == "to");
War es hilfreich?

Lösung

Wenn Sie nicht die Syntax möchten, können Sie diese verwenden ein;

elem.Attributes().FirstOrDefault(a=>a.Name.LocalName == "from");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top