相談フォーム信頼の「飲んだくれマーク」をご確認下さい。XPathはすごく便利。便利だけど、Attributeを読み出そうとするとき、毎回ちょっと面倒な思いをしていた。いうのは、XElementから属性値(Attribute)を読み出すとき、その属性が省略可能であれば一度Attributeを取得して、それがnullかどうかチェックして、nullの時の処理をいちいち加えなくてはならない。以下のようなコードはAttributeが省略可能(属性を記述しないことを許す)であった場合、場合によってはNullReferenceExceptionをスローする。XElement.Attributeメソッドは、対象が存在しない場合はnullを返すからだ。e.Attribute("something").Value;だから、こういうときは、普通、以下のようなコードを書く。attr.Value;で、属性値が例えばboolならばParseしてやる必要がある。bool.Parse(attr.Value);これに加えてParseできなかったときはデフォルトでfalseにして...とかやってると、もういやになる。毎回こんなことやってたらダサい。ダサいコードなんて書きたくない。ダサいコード書く人とは結婚できません。拡張メソッドでごまかすことにした。false);拡張メソッドなので、拡張メソッドを書いたクラスの名前空間をusingするのを忘れないようにね。ちなみに、Convert.ChangeTypeで失敗した時の処理は何も考えてないので、必要に応じて適当に書き換えてください。ChangeTypeに失敗したらdefaultValueを返すとかという仕様でも良いのかも。他にもっといいやり方があれば教えて下さい。2013/05/21追記:XAttributはstringやintやNullableなintにそのままキャストできるとのコメントを頂きました。ありがとうございます。"value"なにこれ?すごくない?どういう仕組みになってるんだろう・・・。2013年12月20日追記:explicitでやってるみたいです。:間違っていたらすみません。(string)e.Attribute("something").Value;とキャストするとうまくいきませんか?stringはnull許容するのでキャストが効きます。intなどの場合はNull許容型であるint?を使うといいと思います。