簡體   English   中英

是否有一個XmlWriter可以編寫色彩鮮艷的HTML格式的輸出以在網頁中顯示XML?

[英]Is there an XmlWriter that writes a colorful HTML-formatted output for displaying XML in a webpage?

我想按原樣在ASP.NET網站上顯示一些XML(出於調試目的),如果它是彩色的,那會很好。 使用正確的XmlWriter可以輕松實現這一點,但是我沒有時間自己做。 是否有一個現有的(免費)組件可以執行此操作?

我不會使用XmlWriter。

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

“原始” xml更有可能顯示為另一個HTML頁面的一部分。 在那種情況下,我將在服務器端使用XSL轉換從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開始,IE已包含樣式表以格式化“原始” xml。 有時可以通過res://msxml3.dll/defaultss.xsl進行訪問。 但這不是XSLT標准樣式表。 它使用Microsoft特定的WD-xsl格式。 可能不是您想要的。

我看了看,發現符合XSLT標准的東西。 Oleg Tkachenko制作,並作為他的eXml Web控件的一部分發行 它可以通過BSD樣式許可使用。 (您甚至可能需要整個exml控件-我不知道它是什么。)

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

替代文字

它不是很完美,因為該樣式表會生成一個完整的HTML頁面,帶有<HTML><HEAD>標記等。您確實只需要一個片段。 但是您應該可以很容易地對其進行調整,並且無論如何,它對我來說正確顯示,沒有修改。


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

那將是您的編輯器的功能,而不是XML文件本身的功能,因此,XmlWriter不會這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM