XML渲染在IE和Chrome中是不同的?

时间:2015-07-08 16:53:11

标签: asp.net xml google-chrome internet-explorer

我使用以下方法在浏览器上显示XML。

val interceptFuncs = eventFilters.map(_.intercept _) //Seq[Foo => Foo]
Function.chain(interceptFuncs)(startingValue)

Chrome上的结果低于

string fn="first_name";
        string ln = "last_name";
        string ec="0";
        string desc = "Success";
        string xml = "<response><variables><var name=\"" + fn + "\" expr=\"" + fName + "\" /><var name=\"" + ln + "\" expr=\"" + lName + "\" /></variables><error code=\"" + ec + "\" description =\"" + desc + "\" /></response>";

      //  XmlDocument xmlDoc = new XmlDocument();
      //  xmlDoc.LoadXml(xml); 

        Response.Clear();
        Response.ContentType = "text/xml; charset=utf-8";
        Response.ContentEncoding = Encoding.UTF8;
        Response.Write(xml);
        Response.End();

在IE中,它采用以下格式

<response>
<variables>
<var name="first_name" expr="API"/>
<var name="last_name" expr="VCCAudit"/>
</variables>
<error code="0" description="Success"/>
</response>

问题是Chrome显示正确的XML,其中IE更改了name和expr的序列,同样的事情发生在错误标记中,其中描述和代码序列发生了变化。

请帮助这方面。 感谢

1 个答案:

答案 0 :(得分:0)

属性没有特定的顺序。

  

&#34;请注意,start-tag或中的属性规范的顺序   空元素标签不重要。&#34;

参考:http://www.w3.org/TR/REC-xml/#sec-starttags

因此,显示属性的方式都是正确的。 XML不会通过重新排序标记中的属性来改变含义。

如果您希望以任何特定方式显示XML,您需要自己显示它,而不是依赖浏览器中的内置支持来显示XML。