Динамический XML - PullRequest
       20

Динамический XML

0 голосов
/ 07 апреля 2009

Какой идеальный способ создания XML без создания и сохранения файла?

Я подумываю использовать страницу ASP.NET с кодом для создания разметки в виде XML.

Возможно ли это? Или у вас есть альтернативный способ?

У меня есть флэш-компонент, который читает файл XML, и мне нужно динамически сгенерировать этот файл. У меня нет разрешения на запись, поэтому у меня не будет возможности создавать и сохранять файл.

Я думал о том, чтобы у меня была страница приложения, которая собирала данные и предоставляла методы свойств для генерации xml на странице Settings.xml.aspx с использованием кода настройкиs.s.

Спасибо.

Ответы [ 4 ]

4 голосов
/ 07 апреля 2009

Самый простой способ - использовать System.Xml.XmlDocument или System.Xml.Linq.XDocument для создания документа. Оба могут быть направлены на Response.OutputStream.

Самый плавный подход (особенно если вы отключите буферизацию) - это просто создать XmlTextWriter вокруг Response.OutputStream. Это только прямой подход к генерации XML, но если вывод большой, это означает, что вам нужно меньше памяти, и контент начинает поступать к клиенту раньше.

2 голосов
/ 07 апреля 2009

На самом деле есть много способов сделать это. Все зависит от ваших потребностей. Возможно, вы могли бы взглянуть на некоторые примеры XDocument (или XmlDocument в .NET 2.0) и XmlWriter, но ни один из них не требует сохранения XML в файл. Вы можете сохранить объектную модель в памяти при использовании XDocument или записать в MemoryStream при использовании XmlWriter:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;

using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
    using (XmlWriter writer = XmlWriter.Create (stream, settings))
    {
      writer.WriteStartElement ("customer");
      writer.WriteElementString ("firstname", "Jim");
      writer.WriteElementString ("lastname"," Bo");
      writer.WriteEndElement();
    }
    // do further processing with the stream
}

Разница между ними заключается в том, что первый дает вам доступ к DOM, а второй просто записывает XML в базовый поток.

К сожалению, не зная более подробной информации, на этот вопрос можно ответить только смутно.

2 голосов
/ 07 апреля 2009
1 голос
/ 07 апреля 2009

Да, вполне возможно генерировать XML "на лету". Взгляните на класс XmlDocument . И больше информации здесь .

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