2010-05-13 25 views
2

我已經有了一點XML,我想按原樣顯示在ASP.NET網站上(用於調試目的),如果它是彩色的,它會很好。這應該很容易實現與XmlWriter正確的種類,但我沒有時間自己做一個。是否有現成的(免費)組件可以做到這一點?是否有一個XmlWriter寫一個豐富多彩的HTML格式的輸出在網頁中顯示XML?

+0

你已經在網站上超過一年了,有超過11k代表,仍然不知道爲什麼? – Oded 2010-05-13 10:37:25

回答

0

這將是你的編輯器比XML文件本身更多的功能,所以不,XmlWriter不會這樣做。

+0

你誤會了。我希望我的**網頁**顯示豐富多彩的XML標記。我不想編輯該XML或將其複製到文件或任何內容。只需在網站上查看即可。 – 2010-05-13 10:21:40

+0

然後只需使用一個CSS文件。 CSS非常適合XML。不需要從XMLWriter發出更多的XML。 – 2010-05-13 11:04:05

+0

如何顯示標記?真的,我想看到** XML本身**。像'生命的意義'擁有屬性及其價值和一切。我希望XML的語法着色。像使尖括號變成紫色,標記名稱爲藍色,文本內容爲黑色,屬性值爲黃色,評論爲綠色等。 – 2010-05-13 11:10:57

4

我不會使用XmlWriter。

我會使用XSLT。如果要自行顯示XML文件,只需將樣式表PI嵌入XML:<?xml-stylesheet type="text/xsl" href="RawXmlAsHtml.xslt"?>。但是由於IE會自動執行此操作,因此我會假設您的目標不是在自己的頁面中顯示XML。

更可能是「原始」xml顯示爲另一個HTML頁面的一部分。在這種情況下,我會在服務器端使用XSL Transform來從XML生成HTML,然後將輸出插入到<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什麼?

因爲MSXML3包含一個樣式表來格式化「原始」xml,IE。它有時可以通過res://msxml3.dll/defaultss.xsl訪問。但這不是一個XSLT標準樣式表;它使用特定於Microsoft的WD-xsl格式。它可能不是你想要的。

我看了一下,發現符合XSLT標準的東西;由Oleg Tkachenko生產並作爲his eXml web control的一部分發貨。它在BSD風格的許可下可用。 (你可能甚至想整個EXML控制 - 我不知道它是什麼)

使用XSLT和上面的代碼,顯示如下:

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

這不是很完美的,因爲該樣式表生成一個完整的HTML頁面,<HTML><HEAD>標籤等。你真的只是想要一個片段。但是你應該能夠很容易地調整它,無論如何,它對我來說是正確顯示的,沒有修改。


編輯:關於我提到的問題:我修改了樣式表,只是沒有注入<HTML><HEAD>標籤。它效果很好。

+0

現在,這是朝着正確方向邁出的一步!我的問題是否真的如此糟糕,以至於這個想法很難理解? – 2010-05-13 18:05:09

+0

不是那麼難,但是XmlWriter部分是一條紅色的鯡魚,並且可能已經拋棄了人們。 – Cheeso 2010-05-14 04:07:24

+0

這對我來說很好。這絕對應該是一個被接受的答案。 – 2010-06-15 14:22:17

相關問題