2

ASP.NET の Web サイトにそのまま (デバッグ目的で) 表示したい XML が少しあります。これは、適切な種類の で簡単に実現できるはずですがXmlWriter、自分で作成する時間がありません。これを実行できる既存の (無料の) コンポーネントはありますか?

4

2 に答える 2

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 を使用できるかという問題が残ります。

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>タグを挿入しないようにしました。それはうまくいきます。

于 2010-05-13T14:52:34.977 に答える
0

これは、XML ファイル自体よりもエディターの機能になるため、XmlWriter はそれを行いません。

于 2010-05-13T10:06:58.060 に答える