ASP.NET の Web サイトにそのまま (デバッグ目的で) 表示したい XML が少しあります。これは、適切な種類の で簡単に実現できるはずですがXmlWriter
、自分で作成する時間がありません。これを実行できる既存の (無料の) コンポーネントはありますか?
2 に答える
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 を使用できるかという問題が残ります。
IE には、MSXML3 以降、「生の」xml をフォーマットするためのスタイルシートが含まれています。res://msxml3.dll/defaultss.xsl からアクセスできる場合があります。しかし、これは XSLT 標準スタイルシートではありません。Microsoft 固有の WD-xsl 形式を使用します。それはあなたが望むものではないかもしれません。
XSLT 標準に準拠するものを探して見つけました。Oleg Tkachenkoによって作成され、彼の eXml Web コントロールの一部として出荷されます。BSD スタイルのライセンスの下で利用できます。(exml コントロール全体が必要な場合もあります。それが何であるかはわかりません。)
その XSLT と上記のコードを使用すると、表示は次のようになります。
<HTML>
このスタイルシートはや<HEAD>
タグなどを含む完全な HTML ページを生成するため、これは完全ではありません。必要なのはフラグメントだけです。しかし、かなり簡単に微調整できるはずです。とにかく、修正せずに適切に表示されました。
編集:私が言及した問題に関して:スタイルシートを変更して、<HTML>
and<HEAD>
タグを挿入しないようにしました。それはうまくいきます。
これは、XML ファイル自体よりもエディターの機能になるため、XmlWriter はそれを行いません。