メディアライブラリからxmlファイルを読み込もうとしていますが、パスに問題があります。xmlファイルが実際のサーバーファイルにある場合、または別のホストされているサイトにある場合はxmlをロードできましたが、ファイルがメディアライブラリにある場合はロードできませんでした。xmlファイルはどこかでホストされている物理ファイルである必要がありますか?
メディアアイテムのパスを取得するためのコードは次のとおりです。
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item sampleItem = master.GetItem("/sitecore/media library/Files/eBooks/testxml");
Sitecore.Data.Items.Item sampleMedia = new Sitecore.Data.Items.MediaItem(sampleItem);
string url = Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(sampleMedia));
次に、xmlをロードすると、次のようになります。
XmlDocument xDoc = new XmlDocument();
xDoc.Load(Server.MapPath(url));
返されるパスは正しいです。これは、アンカータグに入れて、xmlファイルにリンクするかどうかをテストしたためです。このサイトで同様の投稿を見つけましたが、xml.Loadのコンテキストでメディアライブラリアイテムを扱っているものはないようです。
これが可能かどうか、またはそれを機能させるために私ができることについての情報をいただければ幸いです。
ありがとうございました。