我想從在Episerver的編輯模式下創建的屬性中讀取XML文檔。如何從Episerver的屬性中讀取XML文檔
我已經做出'URL到文檔'類型的一個屬性。 當我試圖從後面的代碼中獲取它時,它只給出文件路徑。我無法讀取屬性中上傳的XML文件的內容。
string XMLContent = Currentpage.Getproperty<string>("XMLFile");
任何人都可以幫忙嗎?
我想從在Episerver的編輯模式下創建的屬性中讀取XML文檔。如何從Episerver的屬性中讀取XML文檔
我已經做出'URL到文檔'類型的一個屬性。 當我試圖從後面的代碼中獲取它時,它只給出文件路徑。我無法讀取屬性中上傳的XML文件的內容。
string XMLContent = Currentpage.Getproperty<string>("XMLFile");
任何人都可以幫忙嗎?
您還需要加載該文件。事情是這樣的:
var path = CurrentPage["XMLFile"] as string;
if (HostingEnvironment.VirtualPathProvider.FileExists(path))
{
var file = HostingEnvironment.VirtualPathProvider.GetFile(path) as UnifiedFile;
if (file != null)
{
using (var stream = file.Open())
{
// Here is your XML document
var xml = XDocument.Load(stream);
}
}
}
您也可以通過使用磁盤,file.LocalPath本地路徑加載的文件內容。
試試這個
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string XMLContent = "";
//using XML
XmlDocument doc1 = new XmlDocument();
doc1.LoadXml(XMLContent);
//using xml linq
XDocument doc2 = XDocument.Parse(XMLContent);
}
}
}
該問題與將內容解析爲XML無關。這個問題實際上與產品EPiServer以及如何讀取文件有關。 –
你好,謝謝你的回答。但是var stream = file.Open()不起作用。流對象中沒有獲取文件內容。錯誤:'((System.IO.Stream)(s))。ReadTimeout' – user2130929
您可以打開文件小工具中屬性中指定的文件嗎?該錯誤表明您從磁盤讀取文件時遇到問題。 file.LocalPath說什麼?它是否爲您提供了磁盤上存在的路徑? –
是的,file.LocalPath給了我正確的路徑。流變量給我的文件信息,但我怎麼讀取它的內容。 – user2130929