2015-10-09 9 views
0

Я хочу прочитать XML-документ из свойства, которое создается в режиме редактирования Episerver.Как читать XML-документ из свойства в Episerver

Я создал одно свойство типа 'URL to Document'. Когда я пытаюсь извлечь его из кода позади, он дает только путь к файлу. Я не могу прочитать содержимое XML-файла, загружаемого в свойство.

string XMLContent = Currentpage.Getproperty<string>("XMLFile"); 

Может ли кто-нибудь помочь в этом?

ответ

3

Вам необходимо загрузить файл. Что-то вроде этого:

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.

+0

Привет, Спасибо за ответ. Но var stream = file.Open() не работает. Содержимое файла не загружается в объект потока. Ошибка: '((System.IO.Stream) (s)). ReadTimeout' – user2130929

+0

Можете ли вы открыть файл, который вы указали в свойстве, в гаджете файлов вообще? Ошибка указывает на то, что у вас проблемы с чтением файла с диска. Что говорит file.LocalPath? Предоставляет ли он вам путь, который существует на диске? –

+0

Да, file.LocalPath дает мне правильный путь. Переменная потока дает мне информацию о файле, но как я могу прочитать ее содержимое. – user2130929

0

попробовать этот

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); 
     } 
    } 
} 
​ 
+0

Проблема не связана с разбором содержимого как XML. Вопрос действительно связан с продуктом EPiServer и как читать файл. –