½âÎö XML DOM

´ó¶àÊýä¯ÀÀÆ÷¶¼ÄÚ½¨Á˹©¶ÁÈ¡ºÍ²Ù×÷ XML µÄ XML ½âÎöÆ÷¡£

½âÎöÆ÷°Ñ XML ת»»Îª JavaScript ¿É´æÈ¡µÄ¶ÔÏó¡£

ʵÀý

W3School ÌṩµÄʵÀý¶ÀÁ¢ÓÚä¯ÀÀÆ÷ºÍƽ̨¡£ÕâЩʵÀý¿ÉÔÚËùÓÐÏÖ´úä¯ÀÀÆ÷ÖÐÔËÐС£

¼ÓÔØ²¢½âÎö XML Îļþ
¼ÓÔØ²¢½âÎö XML ×Ö·û´®

½âÎö XML

ËùÓÐÏÖ´úä¯ÀÀÆ÷¶¼ÄÚ½¨ÁËÓÃÓÚ¶ÁÈ¡ºÍ²Ù×÷ XML µÄ XML ½âÎöÆ÷¡£

½âÎöÆ÷°Ñ XML ¶ÁÈëÄڴ棬²¢°ÑËüת»»Îª¿É±» JavaScript ·ÃÎ浀 XML DOM ¶ÔÏó¡£

΢ÈíµÄ XML ½âÎöÆ÷ÓëÆäËûä¯ÀÀÆ÷ÖеĽâÎöÆ÷ÊÇÓвîÒìµÄ¡£Î¢ÈíµÄ½âÎöÆ÷Ö§³Ö¶Ô XML ÎļþºÍ XML ×Ö·û´®£¨Îı¾£©µÄ¼ÓÔØ£¬¶øÆäËûä¯ÀÀÆ÷ʹÓõ¥¶ÀµÄ½âÎöÆ÷¡£²»¹ý£¬ËùÓеĽâÎöÆ÷¶¼º¬ÓбéÀú XML Ê÷¡¢·ÃÎÊ¡¢²åÈ뼰ɾ³ý½ÚµãµÄº¯Êý¡£

ÔÚ±¾½Ì³ÌÖУ¬ÎÒÃǽ«ÎªÄú½²½âÈçºÎ´´½¨¿ÉÔÚ IE ¼°ÆäËûä¯ÀÀÆ÷ÖÐÔËÐеĽű¾¡£

ͨ¹ý΢ÈíµÄ XML ½âÎöÆ÷¼ÓÔØ XML

΢ÈíµÄ XML ½âÎöÆ÷ÄÚ½¨ÓÚ Internet Explorer 5 ¼°¸ü¸ß°æ±¾ÖС£

ÏÂÃæµÄ JavaScript Ƭ¶Î°Ñ XML Îĵµ ("books.xml") ÔØÈëÁ˽âÎöÆ÷£º

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("books.xml");

´úÂë½âÊÍ£º

  • µÚÒ»Ðд´½¨¿ÕµÄ΢Èí XML Îĵµ¶ÔÏó
  • µÚ¶þÐйرÕÒì²½¼ÓÔØ£¬ÕâÑù¿ÉÈ·±£ÔÚÎĵµÍêÕû¼ÓÔØÖ®Ç°£¬½âÎöÆ÷²»»á¼ÌÐøÖ´Ðнű¾
  • µÚÈýÐиæÖª½âÎöÆ÷¼ÓÔØÃûΪ "books.xml" µÄÎĵµ

ÏÂÃæµÄ JavaScript Ƭ¶Î°ÑÃûΪ txt µÄ×Ö·û´®ÔØÈë½âÎöÆ÷ÖУº

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);

×¢ÊÍ£ºloadXML() ·½·¨ÓÃÓÚ¼ÓÔØ×Ö·û´®£¨Îı¾£©£¬¶ø load() ÓÃÓÚ¼ÓÔØÎļþ¡£

ÔÚ Firefox ¼°ÆäËûä¯ÀÀÆ÷ÖÐµÄ XML ½âÎöÆ÷

ÏÂÃæµÄ JavaScript Ƭ¶Î°Ñ XML Îĵµ ("books.xml") ÔØÈëÁ˽âÎöÆ÷£º

xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("books.xml");

´úÂë½âÊÍ£º

  • µÚÒ»Ðд´½¨¿ÕµÄ XML Îĵµ¶ÔÏó
  • µÚ¶þÐйرÕÒì²½¼ÓÔØ£¬ÕâÑù¿ÉÈ·±£ÔÚÎĵµÍêÕû¼ÓÔØÖ®Ç°£¬½âÎöÆ÷²»»á¼ÌÐøÖ´Ðнű¾
  • µÚÈýÐиæÖª½âÎöÆ÷¼ÓÔØÃûΪ "books.xml" µÄÎĵµ

ÏÂÃæµÄ JavaScript Ƭ¶Î°ÑÃûΪ txt µÄ×Ö·û´®ÔØÈë½âÎöÆ÷ÖУº

parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");

´úÂë½âÊÍ£º

  • µÚÒ»Ðд´½¨Ò»¸ö¿ÕµÄ XML Îĵµ¶ÔÏó
  • µÚ¶þÐиæÖª½âÎöÆ÷¼ÓÔØÃûΪ txt µÄ×Ö·û´®

×¢ÊÍ£ºInternet Explorer ʹÓà loadXML() ·½·¨À´½âÎö XML ×Ö·û´®£¬¶øÆäËûä¯ÀÀÆ÷ʹÓà DOMParser ¶ÔÏó¡£

½âÎö XML Îļþ - Ò»¸ö¿çä¯ÀÀÆ÷µÄʵÀý

ÏÂÃæµÄÀý×Ó°Ñ XML Îĵµ ("books.xml") ÔØÈë XML ½âÎöÆ÷£º

<html>
<body>
<script type="text/javascript">
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlDoc.async=false;
  xmlDoc.load("books.xml");
  document.write("xmlDoc is loaded, ready for use");
  }
catch(e) {alert(e.message)}
</script>
</body>
</html>

TIY

Error: Access Across Domains

³öÓÚ°²È«·½ÃæµÄÔ­Òò£¬ÏÖ´úµÄä¯ÀÀÆ÷²»ÔÊÐí¿çÓòµÄ·ÃÎÊ¡£

ÕâÒâζ×Å£¬ÍøÒ³ÒÔ¼°ËüÊÔͼ¼ÓÔØµÄ XML Îļþ£¬¶¼±ØÐëλÓÚÏàͬµÄ·þÎñÆ÷ÉÏ¡£

W3School µÄʵÀýËù´ò¿ªµÄ XML ÎļþλÓÚ W3School µÄÓòÉÏ¡£

¼ÙÈçÄã´òËãÔÚ×Ô¼ºµÄÍøÒ³ÉÏʹÓÃÉÏÃæµÄÀý×Ó£¬Ôò±ØÐë°Ñ XML Îļþ·Åµ½×Ô¼ºµÄ·þÎñÆ÷ÉÏ¡£·ñÔò£¬xmlDoc.load() ½«²úÉú´íÎó "Access is denied"¡£

½âÎö XML ×Ö·û´® - Ò»¸ö¿çä¯ÀÀÆ÷µÄʵÀý

ÏÂÃæµÄ´úÂë¼ÓÔØ²¢½âÎöÁËÒ»¸ö XML ×Ö·û´®£º

<html>
<body>
<script type="text/javascript">
text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";

try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
    }
  catch(e) {alert(e.message)}
  }
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>

TIY

×¢ÊÍ£ºInternet Explorer ʹÓà loadXML() ·½·¨À´½âÎö XML ×Ö·û´®£¬¶øÆäËûä¯ÀÀÆ÷ʹÓà DOMParser ¶ÔÏó¡£

VUE