特定のローカル名を持つ要素から単一の特定の属性を取得できる必要がありますが、名前空間は任意です (XMPP に精通している場合は、その理由を理解できます)。独自の (列挙子または単一選択) 拡張メソッドを作成する以外に、アイデアはありますか?
私は次のものを持っていますが、私はそれがまったく好きではありません:
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");