我从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作为内容打开新的弹出窗口?
答案 0 :(得分:1)
就像L.Monty在评论中所说的那样,我会用<
替换你的XML字符串中的每个<
,并用>
替换每个>
,这样浏览器就不会尝试将所有标签解释为HTML。
对于树状视图,我会编写自己的函数,在每个XML结束标记之后添加一个中断+一些空格,您可以在每个后续XML开放标记的变量中计算这些空格。不要忘记为每个XML-Close标记减少此计数器。