Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript和FireFox中获取innerXml或outerXml_Javascript_Xml_Firefox - Fatal编程技术网

如何在JavaScript和FireFox中获取innerXml或outerXml

如何在JavaScript和FireFox中获取innerXml或outerXml,javascript,xml,firefox,Javascript,Xml,Firefox,当使用IE时,以下方法有效- alert("XML Root IE: " + xmlDoc.documentElement.tagName); // ok alert("Xml: " + xmlDoc.documentElement.xml); // ok 但是对于FireFox,函数xml、innerxml、outerxml都是未定义的 alert("tagName: " + xmlDoc.documentElement.tagName); // ok

当使用IE时,以下方法有效-

 alert("XML Root IE: " + xmlDoc.documentElement.tagName); // ok
 alert("Xml: " + xmlDoc.documentElement.xml);             // ok
但是对于FireFox,函数xml、innerxml、outerxml都是未定义的

   alert("tagName: " + xmlDoc.documentElement.tagName);  // ok
   alert("Xml Content: " + xmlDoc.documentElement.xml);  // undefined
   alert("Xml innerxml: " + xmlDoc.documentElement.innerxml);  // undefined
   alert("Xml outerxml: " + xmlDoc.documentElement.outerxml);  // undefined
如何在FireFox上获取实际的XML? (我知道我正确读取了XML,因为“documentElement.tagName”在IE和FF上都返回正确的值)

谢谢

阿塔拉

编辑:以下是相关FF代码:

    var xmlDoc;

function fLoadXml() {
  // alert("fLoadXml()");
  if (window.ActiveXObject) { // IE
    fLoadXmlIE()
  } else if (document.implementation && document.implementation.createDocument) { // FF
    fLoadXmlFF()
  }
}

function fLoadXmlFF() {
   // alert("fLoadXmlFF()");
   xmlDoc = document.implementation.createDocument("","",null) ;
   xmlDoc.async = false;
   xmlDoc.onload = fReadXmlFF;
   var loaded = xmlDoc.load("myFile.xml");
   alert("loaded: " + loaded);
}

function fReadXmlFF() {
   alert("fReadXmlFF()");
   alert("tagName: " + xmlDoc.documentElement.tagName);
   alert("Xml Content: " + xmlDoc.documentElement.xml);  // undefined
   alert("Xml innerxml: " + xmlDoc.documentElement.innerxml);  // undefined
   alert("Xml outerxml: " + xmlDoc.documentElement.outerxml);  // undefined

}

xml是一个仅用于IE的属性,请尝试其他类似于ChildNodes和NodeValue的方法,在此处查看它:

在中找到它-

解决方案:

function fReadXmlFF() {
   alert("tagName: " + xmlDoc.documentElement.tagName);  // ok
   strXml = (new XMLSerializer()).serializeToString(xmlDoc); // ok
   . . . 

这些函数似乎都不会将整个XML作为字符串返回。我错过了什么?+1在FF和Chrome中效果很好。仅供参考-这在IE中不起作用。如果要提供跨浏览器兼容性,可以测试是否定义了ActiveXObject(如果为true,请使用
.xml
)。