LINQ: Get mit jedem Namespace-Attribute aber bestimmten Namen
-
08-07-2019 - |
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");
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