如何使浏览器按原样在XML中显示任何标记,而不使用<xmp>或<pre> </xmp>

时间:2014-12-19 23:04:53

标签: ajax xml

我试图在IE9中以String格式显示一个Ajax返回的xml文件。

由于它在String中,IE将所有xml标记作为不可识别的html标记并将它们抛弃。只显示文本数据,实际上是一团糟。我可以使用&lt; xmp&gt;或者&lt; pre&gt;但是当我通过文件保存xml时,&gt;另存为...,&lt; xmp&gt; &lt; pre&gt;在那里。我可以选择从网页中选择所有内容并将粘贴复制到某些文本编辑器,但在我的情况下,最好使用另存为。

所以我试图逃避所有这些&lt;和&gt;使用StringEscapeUtils.escapeXml()在Java中使用实体引用。但问题仍然存在。我是否在Java中使用它?有没有简单的方法在brwoser中按原样显示xml输入流(不是文件)?

这是Ajax服务的Java代码。

 public String retrieveXML() {

        String unescapedXML = getXMLByRestfulService();
        formatXMLMsg(unescapedXML);
        String finalXML = StringEscapeUtils.escapeXml(unescapedXML);

        return SUCCESS;
    }

这是Ajax客户端代码。可以安全地忽略某些参数。

if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();a
    } else if ( window.ActiveXObject ){
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if ( req ) {
        req.onreadystatechange=function(){
           if ( req.readyState == READY_STATE_COMPLETE ){
              var myXML = req.responseText;
              var myWin = window.open("", "aWindow", "width=800, height=500");
              myWin.document.write("<xmp>"+myXML+"</xmp>");
              myWin.focus();
            }
        };
        req.open("POST", url, true );
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.send (params);
    }

1 个答案:

答案 0 :(得分:0)

我对你的问题有点不清楚&#34;&#34;&#34;在浏览器中。但是,我会开枪。 您可能需要启用XML DOM插件。

  1. 点击工具(齿轮图标) - &gt;管理加载项;这将弹出一个对话框
  2. 选择&#34;所有附加组件&#34;。我没有加载IE9,但你需要(可能如下所示): enter image description here
  3. 查找&#34; XML DOM文档&#34;加载项并确保其已启用
  4. 关闭所有IE窗口并重新测试