2019/10/18(金)久しぶりのXMLではまる

ASP.NET MVCでナビゲーションを作成するのに、Web.sitemapファイルを利用して作成し始めたものの、サイドメニュー、サイトマップ、パンくずまではなんとかできたものの、戻る、進むのページナビを作ろとして兄弟(siblings)の取得方法がわからず。
調べるぐらいならSystem.XMLで直で扱った方が早いわと方向転換。

ところがファイル名はWeb.sitemapのままでもちゃんとXMLDocumentにロードされているは確認できるのに、なぜか //siteMapNode ですら一つもノードが取得できない。

しばらくXML触っていないので、XPathおぼつかないので昔XMLを直でいじくった際のコードを動かしてみようと、まずは昔のXMLをプロジェクトに追加してファイルを開きそのすっきりした中身をみたら、急にNameSpaceのことを思い出しました。
もう一度Web.sitemapに戻ったら、デフォルトのNameSpaceが付いてました…。
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
そりゃ取得できないはずです。

メニューにアイコン追加することも考えていたのでネームスペースとサヨナラして無事ページナビ完成しましたが、今度はロールを使おうとしたら、セキュリティトリミングも自前で実装する必要出てきてちょっとしたこだわりのおかげで思わぬ遠回り。
OK キャンセル 確認 その他