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

3
当使用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上都返回正确)
谢谢, Atara
编辑:以下是相关的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

}
2个回答

7

1
+1 在火狐和谷歌浏览器中运行良好。请注意 - 这在IE中不起作用。如果您想提供跨浏览器兼容性,可以测试ActiveXObject是否已定义(如果为真,则使用.xml)。 - JDB

1

这些函数似乎都没有返回整个XML字符串。我错过了什么? - Atara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接