怎样才能用js生成xmldom对象,并且在firefox中也实现xml数据岛?

  一般来说,xml文件都是从外部载入的,那么我们如何只用js生成xml对象呢?下面的程序实现了这一点,只需要输入字符串形式的xml数据,就可以转换为xml对象,并且兼容firefox。

  用这种方法,我们也可以在firefox中实现xml数据岛,即用xmp标签来装载xml字符串,然后调用createXml函数来生成xml。

  由于firefox中不支持节点的.xml属性,所以需要给它添加该属性,使之与IE一致

  

复制代码 代码如下:

  <body>

  <xmp id=x1>

  <root>

  <node>test</node>

  </root>

  </xmp>

  </body>

  <script>

  if(!document.all)

  XMLDocument.prototype.__defineGetter__("xml",function(){return new XMLSerializer().serializeToString(this)})

  function createXml(str){

  if(document.all){

  var xmlDom=new ActiveXObject("Microsoft.XMLDOM")

  xmlDom.loadXML(str)

  return xmlDom

  }

  else

  return new DOMParser().parseFromString(str, "text/xml")

  }

  xml=createXml(document.getElementById("x1").innerHTML)

  alert(xml.xml)

  </script>