генерировать XML-файл и отображать его в XML-формате - PullRequest
0 голосов
/ 15 сентября 2010

Посмотрел учебник, но не смог заставить его работать:

default.aspx:

<%@ Page Language="C#" ContentType="text/xml" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="rssPubba.Default" %>

default.aspx.cs

 protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "text/xml";
        Response.ContentEncoding = Encoding.UTF8;

        XmlDocument doc = new XmlDocument();

        // XML declaration
        XmlNode declaration = doc.CreateNode(XmlNodeType.XmlDeclaration, null, null);
        doc.AppendChild(declaration);

        // Root element: article
        XmlElement root = doc.CreateElement("article");
        doc.AppendChild(root);

        // Sub-element: author
        XmlElement author = doc.CreateElement("author");
        author.InnerText = "Faisal Khan";
        root.AppendChild(author);

        // Attribute: isadmin
        XmlAttribute isadmin = doc.CreateAttribute("isadmin");
        isadmin.Value = "true";
        author.Attributes.Append(isadmin);

        // Sub-element: title
        XmlElement title = doc.CreateElement("title");
        title.InnerText = "Sample XML Document";
        root.AppendChild(title);

        // Sub-element: body (CDATA)
        XmlElement body = doc.CreateElement("body");
        XmlNode cdata = doc.CreateCDataSection("This is the body of the article.");
        body.AppendChild(cdata);
        root.AppendChild(body);

        doc.Save(Response.OutputStream);
    }

однако приЯ пытаюсь отобразить его, кажется, браузер интерпретирует его как разметку:

вывод:

<article> 
  <author isadmin="true">Faisal Khan</author> 
  <title>Sample XML Document</title> 
  <body><![CDATA[This is the body of the article.]]></body> 
</article>

Какие изменения необходимо внести?

1 Ответ

0 голосов
/ 15 сентября 2010

Я подозреваю, что он очищает вывод и записывает обычные данные страницы. Два варианта:

  • Используйте ashx вместо aspx для создания обработчика, чтобы он знал, что вы не пытаетесь отобразить страницу. Это, вероятно, самый разумный подход, если всегда предназначен для генерации XML-документа.
  • Завершите запрос, когда вы напишите данные, например, по телефону Response.CompleteRequest()

(Я бы также рекомендовал использовать LINQ to XML в качестве более приятного API для построения XML-документов, чем старый DOM API, но это зависит от вас:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...