none
WebMatrix - Отображение данных XML (трансформация через XSLT) на странице HTML. Просто ли? RRS feed

  • Вопрос

  • Добро дня. в процессе работы столкнулся что нахватает знаний катастрофа как:) . У меня есть поток XML (ответ на запрос к удаленному сервису) и также есть XSLT шаблон в котором я произвожу компоновку данных на странице (очень удобно верстать шаблон в AtlovaXMLSpy, проверяет синтаксис). Нашел я пример который наглядно показывает как это сделать. 

     

     // Load the XML document to transform.
      XPathDocument doc = new   XPathDocument("\App_Data\Emails.xml");
    
      // Load the stylesheet and perform the transform.
      XslTransform xslt = new XslTransform();
      xslt.Load("\App_Data\Email_headers.xslt");
      xslt.Transform(doc, null, Response.OutputStream, null);
    

     

    Так вот этот пример был обрамлен в теги script и он прекрасно отрабатывает вывод информации на странице НО над тегом HTML.

    Я так понимаю что непосредственно то как он отрабатывает упарвляеться в 

    xslt.Transform(doc, null, Response.OutputStream, null);
    

    но увы я так и не нашел\ не понял что мне сделать чтобы он выводил инфу внутри шаблона а не снаружи.

    Подскажите пожалуйста как мне это организовать ?

    15 апреля 2011 г. 12:41

Ответы

  •   @{
        //Create the XslTransform object.
        System.Xml.Xsl.XslCompiledTransform xslt = new System.Xml.Xsl.XslCompiledTransform();
    
        //Load the stylesheet.
        xslt.Load("xsl файл");
    
        MemoryStream ms = new MemoryStream();
        
        //Transform the file.
        xslt.Transform("xml файл", null, ms);
    
        ms.Seek(0, SeekOrigin.Begin);
        using (StreamReader sr = new StreamReader(ms))
        {
          HtmlString hs = new HtmlString(sr.ReadToEnd());
          <div>@hs</div>
        }
      }
    

    Для связи [mail]
    18 апреля 2011 г. 11:00
    Модератор
  • еще вариант который я нашол 

    string uri = "htt://site.ru";
    
    
    
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
      ServicePointManager.ServerCertificateValidationCallback += delegate { return true; };
      WebResponse response = request.GetResponse();
    
    
      
      
      //// разбираем ответ
    
      XmlReader reader = XmlReader.Create(response.GetResponseStream());
    
      
      // Load the style sheet.
      XslCompiledTransform xslt = new XslCompiledTransform();
      xslt.Load("c:/inetpub/wwwroot/chablondlyxml.xsl");
    
      // Transform the file and output an HTML string.
      string HTMLoutput;
      StringWriter writer = new StringWriter();
      xslt.Transform(reader, null, writer);
      HTMLoutput = writer.ToString();
      writer.Close();
    
    Отображение на странице 
    @Html.Raw(HTMLoutput)

    • Помечено в качестве ответа DrakonoffNet 22 апреля 2011 г. 9:38
    22 апреля 2011 г. 9:38

Все ответы

  •   @{
        //Create the XslTransform object.
        System.Xml.Xsl.XslCompiledTransform xslt = new System.Xml.Xsl.XslCompiledTransform();
    
        //Load the stylesheet.
        xslt.Load("xsl файл");
    
        MemoryStream ms = new MemoryStream();
        
        //Transform the file.
        xslt.Transform("xml файл", null, ms);
    
        ms.Seek(0, SeekOrigin.Begin);
        using (StreamReader sr = new StreamReader(ms))
        {
          HtmlString hs = new HtmlString(sr.ReadToEnd());
          <div>@hs</div>
        }
      }
    

    Для связи [mail]
    18 апреля 2011 г. 11:00
    Модератор
  • еще вариант который я нашол 

    string uri = "htt://site.ru";
    
    
    
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
      ServicePointManager.ServerCertificateValidationCallback += delegate { return true; };
      WebResponse response = request.GetResponse();
    
    
      
      
      //// разбираем ответ
    
      XmlReader reader = XmlReader.Create(response.GetResponseStream());
    
      
      // Load the style sheet.
      XslCompiledTransform xslt = new XslCompiledTransform();
      xslt.Load("c:/inetpub/wwwroot/chablondlyxml.xsl");
    
      // Transform the file and output an HTML string.
      string HTMLoutput;
      StringWriter writer = new StringWriter();
      xslt.Transform(reader, null, writer);
      HTMLoutput = writer.ToString();
      writer.Close();
    
    Отображение на странице 
    @Html.Raw(HTMLoutput)

    • Помечено в качестве ответа DrakonoffNet 22 апреля 2011 г. 9:38
    22 апреля 2011 г. 9:38