从iframe中的String显示XML作为XMLTree

时间:2014-01-08 12:25:29

标签: javascript html xml iframe

我从gwt rpc调用中获取了一个XML String,我希望将其作为xml页面嵌入到iframe中。我希望看到的是漂亮的印刷xml树,它的可折叠结构是浏览器提供的普通html内容。所以说一个xml的inpage视图。

我无法使用iframe的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标签,只是排列内容。

我尝试的下一步是

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

这里的Firefox完全符合我的要求,而其他产生的输出与以前相同。所以这也没有用,我没有test.xml我只有一个字符串变量以及返回的其他东西......

这甚至可能吗?如果不是,您将如何使用xml String作为内容打开新的弹出窗口?

1 个答案:

答案 0 :(得分:1)

就像L.Monty在评论中所说的那样,我会用<替换你的XML字符串中的每个&lt;,并用>替换每个&gt;,这样浏览器就不会尝试将所有标签解释为HTML。

对于树状视图,我会编写自己的函数,在每个XML结束标记之后添加一个中断+一些空格,您可以在每个后续XML开放标记的变量中计算这些空格。不要忘记为每个XML-Close标记减少此计数器。