繁体   English   中英

通过iframe调用XML解析为HTML

[英]XML is parsed as HTML when called through iframe

我正在尝试使用 iframe 在 HTML 页面中显示 xml 文件,方法是通过更改源属性将内容引入 jQuery。

当我在我的浏览器(Firefox/Chrome/IE8)上打开 iframe 时,它打开正常,如下所示:

在单独的选项卡/窗口中打开 XML
但是当使用 iframe 渲染同一个文档时,xml 被解析为 HTML 并显示如下图所示:

在 iframe 中被调用的 XML
我已经设置了正确的标题,当我检查控制台中的 .network 选项卡时,它显示了正确的结果:

控制台下网络选项卡中的 XML 结果正确
我无法找出一种正确的方法来在 iframe 下正确显示 XML。尝试了不同论坛上发布的各种解决方案,但它似乎没有用。

谢谢!

如果您安装XML Tree扩展程序 ,Chrome将在iframe中显示格式良好的XML。 作为奖励,您可以获得一些XPath功能。

如果原始内容显示适合您,则您有以下选项。

包装xmppre标签中的东西(也有textarea ) - 可能与jQuery转义相结合:

<pre>
  ${fn:escapeXml('
    <!-- the raw content - code, xml --> 
  ')};
</pre>

我遇到了同样的问题并设法像这样解决了......

我正在将xml文件从具有target属性的锚标记加载到 iframe 中。 例如:

<a href="${file.path}" target="displayFrame">...

似乎迫使 iframe 将xml呈现为纯文本的原因是 append 文件 URL 的任意(甚至为空)查询字符串参数,如下所示:

<a href="${file.path}?" target="displayFrame">...

注意“?”。

  • 我将xml文件作为 Content-Type: 'text/plain'
  • 我在 iframe 上有属性type="text/plain"

免责声明:我不确定这是如何或为什么有效的; 即,它如何欺骗 Chrome 以不同方式呈现文件,我也没有在其他浏览器上广泛测试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM