2014-01-08 18 views
5

我从gwt rpc调用中获得了一个XML字符串,我想将它作为xml页面嵌入到iframe中。我希望看到的是漂亮的打印xml树,它的浏览器提供的可折叠结构提供了正常的html内容。所以说一个xml的inpage视图。从iframe中的字符串显示XML为XMLTree

我不能使用iframes的srcdoc属性,因为它不支持IE8(最早需要支持),下一个问题是不允许javascript库。

我试了一下:

var iframeDocument = document.querySelector('#foo').contentWindow.document; 
iframeDocument.open('text/xml', 'replace'); // Also tested without Args 
iframeDocument.write(xmlcontent); 
iframeDocument.close(); 

而Firefox ATLEAST显示XML标签,但未被格式化,没有树Chrome和IE删除HTML标签,只是阵容的内容。

Nextthing我想是

<iframe id="xmlframe" src="test.xml" name="thexml"> 

这里Firefox没有正是我想要的,而其他像以前那样产生相同的输出。所以这也没有工作,以及我没有test.xml我只是有一个字符串变量以及其他返回的东西...

这甚至可能吗?如果不是,你将如何打开一个新的弹出与xml字符串作为内容?

+0

任何解决方案呢? – lbstr

+2

不,我找不到解决方案。每个浏览器都以不同的方式处理它,并且似乎无法强制浏览器在iframe中将xml解析为xml。我还使用dataurl在iframe内部进行了测试以实现此目的。所以我想出了一个正常的XML下载,正常打开在这个弹出窗口。 –

+0

如何通过'<'和'>'转义'<' and '>'? –

回答

1

就像L.Monty说,在评论,我会代替你的XML字符串与&lt;<>&gt;,使浏览器不试图解释所有的标签为HTML。

对于您的树状视图,我会编写自己的函数,它在每个XML结束标记后添加一个中断,并且可以为每个后续的XML打开标记计算一个变量的数量。不要忘记减少每个XML-Close标签的计数器。