2012-03-20 81 views
0

我的目标是允许用户输入一个值,获取与所述值相对应的一些XML,并将获得的XML呈现在iframe中。如何将XML文档呈现给iframe?

我在HTML文件中的以下的jQuery代码:

$.post('VerifyServlet', { action: "getDocument", "tcNo": tcNo, "pgNo": pgNo }, function(data) { 
    var xml = "<?xml-stylesheet type=\"text/xsl\" href=\"../xsl/esigtest.xsl\"?>" + data; 
    var ifrm = document.getElementById('xmlLoader'); 
    ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument; 
    ifrm.document.open('text/xml'); 
    ifrm.document.write(xml); 
    ifrm.document.close(); 
    }); 

在我的servlet相关的代码如下:

response.setContentType("text/xml"); 
PrintWriter out = response.getWriter(); 
out.println(xmlString); 

然后,我有我的iframe ...

... 
<td colspan="3"> 
    <iframe id="xmlLoader" frameborder="0" width="100%" height="100%"></iframe> 
</td> 
... 

放在一起,在我的iframe中显示的结果是

<?xml-stylesheet type="text/xsl" href="../xsl/esigtest.xsl"?>[object XMLDocument] 

我推断[object XMLDocument]所指的可能是data,并且被调用的XMLDocument的toString方法。但是,我真正想要的是使用XSL样式表呈现XML并显示结果。

老实说,我不知道如何去了解这一点,所以我尝试了MIME类型的排列,text/plaintext/xmlapplication/xml之间,但没有任何工程。有没有办法做我想达到的目标?

回答

0

创建XML您可以使用此sintax

var xml = $('<xml>', { version : "1.0", encoding : "UTF-8" }); 

的第一个参数是节点的名称,第二个是一个对象,其proerties将成为节点的属性。

,那么你可以使用jQuery的方法来创建XML

var head = $('<head>'); 
head.appendTo(xml); 
+0

我将如何应用此我上面的代码? – ohseekay 2012-03-21 01:32:37