XML可以通过浏览器使用XSL进行转换。 这可以通过引用xml中的xsl来完成 在xml文件中添加以下行:
<?xml-stylesheet type='text/xsl' href='sample.xsl'?>
现在使用Internet Explorer打开此xml文件将在浏览器中显示正确的数据。
XML本身引用了许多其他文件,例如图片位于某个文件夹中。
我想将显示的数据(包含所有引用的数据)保存在一个单独的数据中 mhtml文件(* .mht)
我该怎么办?这可能吗?
注意:文件都是本地的(不在服务器上),初始的xml是测试数据的结果。 我只是希望我的XML文件在从单个文件开始之前正确显示,而无需访问mhtml文件之外的其他数据。
在回答1时编辑
我已将我的xml包含在HTML的iFrame中:
<body><iframe src="name.xml" width = "100%" height="1000">
</iframe></body>
我已将IE保存为* .mht文件:
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:\ Documents and Settings \ STEFFAN \ Desktop \ Test \ SUPL_TCLog.xml”通过IE浏览器。
但是这个本地引用似乎不适用于mhtml,因为它很糟糕,因此,我使用了随机替代(http://www.m.de/name.xml)。 (这适用于图像文件)。相应地更改它打开mht文件将开始下载xml文件。但这不是通缉。我希望它能够显示出来。
缺少什么?
答案 0 :(得分:0)
这是可能的,但你必须自己构建一些东西。
MHTML本质上是一个多部分电子邮件。它的格式由RFC-2557完整描述。它可以由电子邮件消息生成器和序列化程序生成。
但是我不知道任何会以编程方式生成MHTML的工具。还要注意,没有一种标准的Web存档格式(至少有四种),只有IE,Opera和Chrome才能读取MHTML。
最简单的方法是编写IE脚本来打开页面并将其保存为MHTML。
如果你想在没有IE的情况下生成MHTML,那么你需要创建一个MHTML归档器。
使用归档器,最简单的方法是:
content-location
。这样您就不需要重写href
和src
属性,也不需要解析xsl或html来发现要包含的资源。
如果外部资源太多或者您无法一致地使用路径,则需要解析资源发现和/或网址重写。
在任何情况下,您都可以保存xml + xsl,也可以先生成HTML输出并保存。
答案 1 :(得分:-1)
我确实尝试了一些尝试,但没有成功。 弗朗西斯阿维拉的建议也无法成功解决。
特别是javascript引用的代码也包含其他引用。我不知道如何解决这些并将它们放入mhtml。
使用Altova StyleVision可能是一个解决方案。
因为我不再尝试。我关闭了这个帖子。