如何在JavaScript和FireFox中获取innerXml或outerXml
当使用IE时,以下方法有效-如何在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
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
)。