XMLDom.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. var isIe = /msie/i.test(navigator.userAgent);//是否是IE浏览器
  2. var XMLDom =
  3. {
  4. // 得到xmlDom对象
  5. getXMLDom:function()
  6. {
  7. var axo = null;
  8. var MS_XML_DOM = [
  9. "MSXML2.DOMDocument",
  10. "Microsoft.XMLDOM",
  11. "MSXML.DOMDocument",
  12. "MSXML3.DOMDocument"
  13. ];
  14. if(isIe)
  15. {
  16. for( var i = 0;i < 4;i++)
  17. {
  18. try
  19. {
  20. axo = new ActiveXObject(MS_XML_DOM[i]);
  21. return axo;
  22. }
  23. catch(e)
  24. {
  25. return null;
  26. }
  27. }
  28. }
  29. else
  30. return document.implementation.createDocument("", "doc", null);
  31. },
  32. // 装载一个XMLDom
  33. loadXML:function(url, async, handle)
  34. {
  35. var xmlDom = XMLDom.getXMLDom();
  36. xmlDom.preserveWhiteSpace = true;//兼容FireFox
  37. xmlDom.async = (async == true) ? true : false;
  38. if(async)
  39. {
  40. if(isIe)
  41. xmlDom.onreadystatechange = function()
  42. {
  43. if(xmlDom.readyState == 4)
  44. handle(xmlDom);
  45. };
  46. else
  47. xmlDom.onload = function()
  48. {
  49. handle(xmlDom);
  50. };
  51. }
  52. xmlDom.load(url);
  53. if(!async)
  54. return xmlDom;
  55. },
  56. // 取得XMLDom对象的xml内容
  57. getXML:function(xmlDom)
  58. {
  59. if(isIe)
  60. return xmlDom.xml;
  61. else
  62. return (new xmlSerializer()).serializeToString(xmlDom);
  63. },
  64. //得到节点的属性
  65. getAttribute:function(pNode, pAttribute)
  66. {
  67. try
  68. {
  69. return pNode.attributes.getNamedItem(pAttribute).nodeValue;
  70. }
  71. catch(e)
  72. {
  73. return null;
  74. }
  75. },
  76. //根据字符串得到Xml对象
  77. loadXmlString:function(strXml)
  78. {
  79. var xmlDoc;
  80. try
  81. //Internet Explorer
  82. {
  83. xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  84. xmlDoc.async = "false";
  85. xmlDoc.loadXML(strXml);
  86. }
  87. catch(e)
  88. {
  89. try
  90. //Firefox, Mozilla, Opera, etc.
  91. {
  92. parser = new DOMParser();
  93. xmlDoc = parser.parseFromString(strXml, "text/xml");
  94. }
  95. catch(e)
  96. {
  97. alert(e.message);
  98. }
  99. }
  100. return xmlDoc;
  101. }
  102. };