2010-05-13 2 views
2

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

+0

Вы были на сайте более года, имеют более 11 тыс. Репутации и не знаете почему? – Oded

ответ

0

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

+0

Вы неправильно понимаете. Я хочу, чтобы моя ** веб-страница ** отображала красочный бит разметки XML. Я не хочу редактировать этот XML или копировать его в файл или что-то еще. Просто просмотрите его на веб-сайте. –

+0

Затем просто используйте файл CSS. CSS отлично работает с XML. Не нужно больше испускать XML из XMLWriter. –

+0

Как будет отображаться разметка? На самом деле, я хочу видеть ** сам XML **. Подобно ' Значение жизни' С атрибутами и их значениями и всем. И я хочу синтаксическую раскраску для XML.Например, сделайте угловые скобки фиолетовыми, а теги - синими, а текст - черными, а значения атрибутов - желтыми, а комментарии зелеными и т. Д. –

4

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

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

Скорее всего, «необработанный» xml должен отображаться как часть другой HTML-страницы. В этом случае я буду использовать XSL Transform на стороне сервера для создания 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, включил таблицу стилей для форматирования «raw» xml. Он иногда доступен через res: //msxml3.dll/defaultss.xsl. Но это не стандартная таблица стилей XSLT; он использует формат WD-xsl для Microsoft. Возможно, это не то, что вы хотите.

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

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

alt text http://i42.tinypic.com/16a5tep.jpg

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


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

+0

Теперь это шаг в правильном направлении! Действительно ли мой вопрос так плохо сформулирован, что эту идею так трудно понять? –

+0

Не так сложно, но часть XmlWriter была красной селедкой и могла отбросить людей. – Cheeso

+0

Это просто отлично поработало для меня. Это определенно должен быть принятым ответом. –