2012-02-22 35 views
1

XSLを使用してブラウザでXMLの変換を行うことができます。 これは、いずれかのxmlファイル内で次の行を追加 ことにより、XML内のxslを参照することによって行うことができます。XML、XSLで作成したHTMLをMHTMLに変換する

<?xml-stylesheet type='text/xsl' href='sample.xsl'?>

オープニング、このxmlファイルを今すぐInternet Explorerのブラウザに正しいデータが表示されます。

XMLそのものは、他の多くのファイルを参照します。いくつかのフォルダにある写真。

私は1つの MHTMLファイル(* .mhtファイル)に(参照されるすべてのデータで)表示されたデータを保存したい

はどのように進むのか?それは可能ですか?

注:ファイルはすべてローカル(サーバーではない)であり、最初のxmlはテストデータの結果です。 mhtmlファイルの外の他のデータにアクセスせずに、1つのファイルから開始する前と同じように、XMLファイルを正しく表示したいだけです。私はHTMLのiFrameの中に私のxmlが含まれている

<body><iframe src="name.xml" width = "100%" height="1000"> </iframe></body>

をこの私が*の.mhtファイルにIEを使用して保存している:

答え1時に

編集

From: <Saved by Windows Internet Explorer 7> Subject: XML-Test Date: Wed, 22 Feb 2012 14:47:34 +0100 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_000_0000_01CCF170.E99B1DF0" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CCF170.E99B1DF0 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: file://C:\Documents and Settings\STEFFAN\Desktop\Test\XML-Test.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>XML-Test</TITLE> <META http-equiv=3DContent-Type content=3D"text/html; = charset=3Dwindows-1252"> <META content=3D"MSHTML 6.00.6000.17107" name=3DGENERATOR></HEAD> <BODY><IFRAME=20 src=3D"http://www.m.de/name.xml"=20 width=3D"100%" height=3D1000> </IFRAME></BODY></HTML> ------=_NextPart_000_0000_01CCF170.E99B1DF0 Content-Type: text/xml; charset="unicode" Content-Transfer-Encoding: base64 Content-Location: http://www.m.de/name.xml //48ACEARABPAEMAVABZAFAARQAgAEgAVABNAEwAIABQAFUAQgBMAEkAQwAgACIALQAvAC8AVwAz AEMALwAvAEQAVABEACAASABUAE0ATAAgADQALgAwACAAVAByAGEAbgBzAGkAdABpAG8AbgBhAGwA... 

"http://www.m.de/name.xml"の代わりにローカルファイルを使用しているので "file:// C:\ Documen tsとSettings \ STEFFAN \ Desktop \ Test \ SUPL_TCLog.xml "がIEによって出力されました。

しかし、このローカルリファレンスはmhtmlではうまく動作しないと思われます。そのため、私はランダム置換(http://www.m.de/name.xml)を使用しました。 (これはイメージファイルでうまく動作します)。これに応じてmhtファイルを開くと、xmlファイルのダウンロードが開始されます。しかし、これは望ましくない。私はそれを表示したい。

何が欠けていますか?

答えて

-1

私はいくつかの試みを試みましたが、成功しませんでした。 また、フランシス・アビラの提案私は成功した解決することができませんでした。

特にjavascriptで参照されるコードには他の参照も含まれています。私はこれらを解決してmhtmlに入れる方法を知らなかった。

多分、Altova StyleVisionを使用して解決策になります。

私はもう試していませんでした。私はこのスレッドを閉じます。

0

これは可能ですが、自分で構築する必要があります。

MHTMLは、基本的に複数の電子メールメッセージです。そのフォーマットはRFC-2557によって完全に記述されています。これは電子メールメッセージジェネレータとシリアライザによって生成できます。

しかし、プログラムでMHTMLを生成するツールは認識していません。標準のウェブアーカイブ形式(少なくとも4つはありません)はなく、IE、Opera、ChromeだけがMHTMLを読むことができることにも注意してください。

最も簡単なことは、IEをスクリプトしてページを開き、MHTMLとして保存することです。

IEなしでMHTMLを生成する場合は、MHTMLアーカイバを作成する必要があります。アーカイバで

は、最も簡単な方法は、以下のとおりです。

  1. は、すべての可能な外部リソースを含める
  2. はその後、使用するすべてのこれらのリソースは常に同じURLで参照されていることを確認してくださいcontent-locationをマッチングそのリソースのために。

あなたはhrefsrc属性を書き換えるか、含まれるようにどのようなリソースを発見するためにあなたのXSLやHTMLを解析する必要はありません。この方法では。

可能な外部リソースが多すぎる場合や、パスを一貫して使用できない場合は、リソースの検出やURLの書き換えの解析が必要になります。

いずれの場合でも、xml + xslを保存することも、HTML出力を最初に生成して保存することもできます。

+0

あなたの答えをありがとう。ここでいくつかの質問: 私はInternet Explorerで自分のページを開こうとしましたが、保存するとXMLが保存されます。 (mhtは選択できません)。したがって、私はそれをIFrameに埋め込み、それを保存しようとしました。これもまた成功しませんでした。 MHTMLは、リソースを削除するとすぐに開けません。 (上記のコードを参照してください) "同じURLで"リソースの参照に関しては、それぞれのソースが異なるURLで参照されるべきであることを意味しますか? 私はローカルファイルのURLをファイル///で処理しているため動作していないようです。それはこれのようなものですか? –

+0

開いているファイルがHTMLファイルなので、IEはそのオプションを提供するように見えるので、最初にHTMLへの変換を行い、それをIEで開きます。 「同じURL」は、例えば、同じファイル "a.png"については、 "content-location"が両方に一致できないため、 "a.png"と "./a.png"で参照しないでください。 –

関連する問題