Существует ли XmlWriter, который пишет красочные выходные данные в формате HTML для отображения XML на веб-странице? - PullRequest
2 голосов
/ 13 мая 2010

У меня есть немного XML, который я хочу отобразить на своем веб-сайте ASP.NET как есть (для целей отладки), и было бы хорошо, если бы он был цветным. Этого легко достичь с помощью правильного XmlWriter, но у меня нет времени, чтобы сделать его самому. Существует ли существующий (бесплатный) компонент, который может это сделать?

Ответы [ 2 ]

4 голосов
/ 13 мая 2010

Я бы не использовал XmlWriter.

Я бы использовал XSLT. Если файл XML должен отображаться сам по себе, просто вставьте PI-таблицу стилей в XML: <?xml-stylesheet type="text/xsl" href="RawXmlAsHtml.xslt"?>. Но поскольку IE делает это автоматически, я предполагаю, что ваша цель - не отображать XML на своей странице.

Скорее всего, «сырой» xml будет отображаться как часть другой HTML-страницы. В этом случае я использую XSL-преобразование на стороне сервера для создания HTML из XML, а затем вставляю выходные данные в элемент управления <asp:xml>. Как это:

var doc= new System.Xml.XmlDocument();
doc.Load(xmlFile);
var xsl= new System.Xml.Xsl.XslTransform();
xsl.Load(Server.MapPath("RawXmlAsHtml.xslt"));
xml1.Document = doc;
xml1.Transform = xsl;

И разметка:

<asp:xml id="xml1" runat="server" />

Остается вопрос: какой XSLT вы можете использовать?

IE, начиная с MSXML3, включил таблицу стилей для форматирования "сырого" xml. Иногда он доступен через res: //msxml3.dll/defaultss.xsl. Но это не стандартная таблица стилей XSLT; он использует специфичный для Microsoft формат WD-xsl. Это может быть не то, что вы хотите.

Я посмотрел и нашел что-то, соответствующее стандарту XSLT; производится Олегом Ткаченко и поставляется как часть его веб-элемента управления eXml . Он доступен под лицензией в стиле BSD. (Вы могли бы даже хотеть весь элемент управления exml - я не знаю, что это.)

Используя этот XSLT и приведенный выше код, дисплей выглядит следующим образом:

альтернативный текст http://i42.tinypic.com/16a5tep.jpg

Это не совсем идеально, потому что эта таблица стилей генерирует полную HTML-страницу с тегами <HTML> и <HEAD> и т. Д. Вы действительно просто хотите фрагмент Но вы должны быть в состоянии настроить его довольно легко, и в любом случае, он отображается правильно для меня, без изменений.


Редактировать : в связи с упомянутой проблемой: я изменил таблицу стилей, чтобы не вставлять теги <HTML> и <HEAD> Работает отлично.

0 голосов
/ 13 мая 2010

Это будет скорее функцией вашего редактора, чем самого XML-файла, так что нет, XmlWriter этого не сделает.

...