gtk2kさん、コードの提供ありがとうございました。早速、見てみました(エントリするのは遅かったけど、見たのは早かったんだよぅ)。そして、このあたりに注目。
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xdoc.NameTable);
foreach (XmlAttribute atr in xdoc.DocumentElement.Attributes)
nsmgr.AddNamespace(atr.Name.IndexOf(":") == -1 ? "nn" : atr.Name.Split(':')[1], atr.Value);
XmlNodeList itemList = itemList = xdoc.SelectNodes(ns[rn], nsmgr);
おお、なるほど!XmlNamespaceManager クラスに名前空間を登録して管理させるのか。
で、これの、XML LINQ バージョンを探す・・・無い。。。XNamespace クラスというのが見つかったけど、これは、前回 "{namespace}local name" と書いたのと同じように、文字列から生成(暗黙変換)して、文字列と演算できるようになっているだけのように思われます。
え~?本当に?
検索して、行き着いたページ→方法 : 名前空間内の XML に対するクエリを記述する
う~ん。本当らしい。。。
投稿日時 : 2009年6月18日 23:03