前回ブラウザのChromeが<?xml-stylesheet?>処理命令に対応していないと書きましたが、これはいささか誤りがありました.それまではテストはすべてWindowsのファイルシステムでやっていました.ですからブラウザのURLはfile:///~/~.xmlという感じになります.この場合は確かにChromeは何も表示してくれませんでした.しかし、自分のローカルPCでIISを立ち上げ、http://~/~.xmlというURLでアクセスすると、Chromeは<?xml-stylesheet?>処理命令をちゃんと解釈しHTMLに変換して表示してくれました.http経由でテストしなかったのはやはり間違いでした.お詫びして訂正します.
さて、ASP.NET作戦ですが特になんの問題もなく会社のサーバーで動いてくれました.使った.aspxはサンプルにあったようなきわめて簡単なものです.
[xslt.aspx]
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim XmlFile As String=request.querystring("xml")
Dim XslFile As String=request.querystring("xsl")
Dim objDoc As XmlDocument=New XmlDocument()
Dim objTrn As XslTransform=New XslTransform()
objDoc.Load(Server.MapPath(XmlFile))
objTrn.Load(Server.MapPath(XslFile))
objXml.Document=objDoc
objXml.Transform=objTrn
End Sub
</script>
<asp:Xml id="objXml" runat="server" />
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim XmlFile As String=request.querystring("xml")
Dim XslFile As String=request.querystring("xsl")
Dim objDoc As XmlDocument=New XmlDocument()
Dim objTrn As XslTransform=New XslTransform()
objDoc.Load(Server.MapPath(XmlFile))
objTrn.Load(Server.MapPath(XslFile))
objXml.Document=objDoc
objXml.Transform=objTrn
End Sub
</script>
<asp:Xml id="objXml" runat="server" />
こんなASP.NETなんてもう基本中の基本の枯れた技術なんでしょうけれども、私はHTMLなんてこの10年全然やっていなかったのでやっと当たり前のところにたどり着いた感じです.でも会社でサーバーの自分の担当の横のフォルダのFAQ見るとどう見てもシコシコ手書きです.この時代によく手書きなんかでXHTMLコーディングしているなぁと思います.知らないことは恐ろしいですね.