C¡¢ÐÞ¸ÄÎĵµÄÚÈÝ
¡¡¡¡±éÀúÕû¿ÃÎĵµÊ÷¡¢ËÑË÷ÌØ¶¨µÄ½Úµã£¬ÎÒÃÇ×îÖÕÄ¿µÄÖ®Ò»ÊÇÒªÐÞ¸ÄÎĵµÄÚÈÝ¡£½ÓÏÂÀ´µÄÈý¸öÀý×Ó½«Ê¹ÓÃNodeµÄ¼¸¸ö³£Ó÷½·¨£¬À´ÑÝʾÈçºÎÐÞ¸ÄÎĵµÄÚÈÝ¡£
¡¡¡¡Àý×Ó3 -- sample4_1.htm£º
¡¡¡¡Õâ¸öÀý×Ó°üº¬Èý¸öÎı¾½ÚµãºÍÒ»¸ö°´Å¥¡£µã»÷°´Å¥ºó£¬Èý¸öÎı¾½ÚµãºÍ°´Å¥µÄ˳Ðò½«±»µßµ¹¡£³ÌÐòʹÓÃÁËNodeµÄappendChild()ºÍremoveChild()·½·¨¡£
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function reverseNode(node) { // µßµ¹½ÚµãnodeµÄ˳Ðò
var kids = node.childNodes; //»ñÈ¡×Ó½ÚµãÁбí
var kidsNum = kids.length; //ͳ¼Æ×Ó½Úµã×ÜÊý
for(var i=kidsNum-1;i>=0;i--) { //ÄæÏò±éÀú×Ó½ÚµãÁбí
var c = node.removeChild(kids); //ɾ³ýÖ¸¶¨×ӽڵ㣬±£´æÔÚcÖÐ
node.appendChild(c); //½«c·ÅÔÚÐÂλÖÃÉÏ
}
}
</script>
</head>
<body>
<p>µÚÒ»ÐÐ</p>
<p>µÚ¶þÐÐ</p>
<p>µÚÈýÐÐ</p>
<p><input type="button" name="reverseGo" value="µßµ¹"
></p>
</body>
</html>
¡¡¡¡Àý×Ó4-- sample4_2.htm£º
¡¡¡¡Àý×Ó1ͨ¹ýÖ±½Ó²Ù×÷bodyµÄ×Ó½ÚµãÀ´ÐÞ¸ÄÎĵµ¡£ÔÚ HTMLÎĵµÖУ¬²¼¾ÖºÍ¶¨Î»³£³£Í¨¹ý±í¸ñ<table>À´ÊµÏÖ¡£Òò´Ë£¬Àý×Ó4½«ÑÝʾ²Ù×÷±í¸ñÄÚÈÝ£¬½«±í¸ñµÄËĸöµ¥ÔªÐÐ˳Ðòµßµ¹¡£Èç¹ûûÓÐʹÓà <tbody>±êÇ©£¬Ôò<table>°ÑÈ«²¿µÄ<tr>µ±×öÊÇÊôÓÚÒ»¸ö×Ó½Úµã<tbody>£¬ËùÒÔÎÒÃDzÉÓÃÊý×黺´æµÄ·½Ê½£¬°ÑÐÐÊý¾Ýµßµ¹Ò»Ï¡£Õâ¸öÀý×ÓͬʱҲÑÝʾÁËÈçºÎʹÓÃDOM´´½¨±í¸ñµ¥ÔªÐС£
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function reverseTable() {
var node = document.getElementsByTagName("table")[0]; //µÚÒ»¸ö±í¸ñ
var child = node.getElementsByTagName("tr"); //È¡µÃ±í¸ñÄÚµÄËùÓÐÐÐ
var newChild = new Array(); //¶¨Ò建´æÊý×飬±£´æÐÐÄÚÈÝ
for(var i=0;i<child.length;i++) {
newChild = child.firstChild.innerHTML;
}
node.removeChild(node.childNodes[0]); //ɾ³ýÈ«²¿µ¥ÔªÐÐ
var header = node.createTHead(); //н¨±í¸ñÐÐÍ·
for(var i=0;i<newChild.length;i++) {
var headerrow = header.insertRow(i); //²åÈëÒ»¸öµ¥ÔªÐÐ
var cell = headerrow.insertCell(0); //ÔÚµ¥ÔªÐÐÖвåÈëÒ»¸öµ¥Ôª¸ñ
//ÔÚµ¥Ôª¸ñÖд´½¨TextNode½Úµã
cell.appendChild(document.createTextNode(newChild[newChild.length-i-1]));
}
}
</script>
</head>
<body>
<table width="200" border="1" cellpadding="4" cellspacing="0">
<tr>
<td height="25">µÚÒ»ÐÐ</td>
</tr>
<tr>
<td height="25">µÚ¶þÐÐ</td>
</tr>
<tr>
<td height="25">µÚÈýÐÐ</td>
</tr>
<tr>
<td height="25">µÚËÄÐÐ</td>
</tr>
</table>
<br>
<input type="button" name="reverse" value="¿ªÊ¼µßµ¹" >
</body>
</html>
¡¡¡¡Àý×Ó5 -- sample4_3.htm£º
¡¡¡¡ÕýÈçÎÒÃÇÔÚNode½Úµã½éÉܲ¿·ÖËùÖ¸³öµÄÄÇÑù£¬appendChild()¡¢replaceChild()¡¢removeChild()¡¢insertBefore()·½·¨»áÁ¢¼´¸Ä±äÎĵµµÄ½á¹¹¡£ÏÂÃæµÄÀý×Ó°üº¬Á½¸ö±í¸ñ£¬ÎÒÃÇÊÔ×Űѱí¸ñ¶þµÄÄÚÈÝÌæ»»±í¸ñÒ»µÄÄÚÈÝ¡£
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function replaceContent() {
var table1 = document.getElementsByTagName("table")[0];
var table2 = document.getElementsByTagName("table")[1];
var kid1 = table1.firstChild.firstChild.firstChild; //¶¨Î»µ½<td>½Úµã
var kid2 = table2.firstChild.firstChild.firstChild; //¶¨Î»µ½<td>½Úµã
var repKid = kid2.firstChild; //¶¨Î»µ½±í¸ñ¶þ<td>ÄÚº¬µÄTextNode½Úµã
try {
//Óñí¸ñ¶þµÄµ¥Ôª¸ñÄÚÈÝÌæ»»±í¸ñÒ»µÄµ¥Ôª¸ñÄÚÈÝ£¬±í¸ñ¶þ±ä³ÉûÓе¥Ôª¸ñÄÚÈÝ
kid1.replaceChild(repKid,kid1.firstChild);
//ÏÂÃæ×¢ÊÍÈç¹û¿ª·Å£¬½«³öÏÖobject error£¬ÒòΪ±í¸ñ¶þÒѾ±»¸Ä±ä
//kid2.replaceChild(kid1.firstChild,kid2.firstChild);
}catch(e){
alert(e);
}
}
</script>
</head>
<body>
<table width="200" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>±í¸ñÒ»</td>
</tr>
</tbody>
</table>
<br>
<table width="200" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>±í¸ñ¶þ</td>
</tr>
</tbody>
</table>
<br>
<input type="button" name="replaceNode" value="Ìæ»»" >
</body>
</html>
¡¡¡¡×¢Ò⣬µ±Ö´ÐÐkid1.replaceChild(repKid,kid1.firstChild);µÄʱºò£¬table2µÄ×Ó½ÚµãÒѾ±»×ªÒƵ½table1ÁË£¬table2ÒѾûÓÐ×ӽڵ㣬²»ÄÜÔÙµ÷ÓÃtable2µÄ×ӽڵ㡣¿´¿´´úÂëµÄ×¢ÊÍ£¬ÊÔ×ÅÔËÐÐһϣ¬Ó¦¸Ã¾ÍÖªµÀÎĵµÊÇÔõô¸Ä±äµÄÁË¡£
¡¡¡¡D¡¢ÍùÎĵµÌí¼ÓÐÂÄÚÈÝ
¡¡¡¡ÔÚѧ»á±éÀú¡¢ËÑË÷¡¢ÐÞ¸ÄÎĵµÖ®ºó£¬ÎÒÃÇÏÖÔÚÊÔ×ÅÍøÎĵµÌí¼ÓеÄÄÚÈÝ¡£ÆäʵûÓÐʲôÐÂÒ⣬ֻÊÇÀûÓÃÎÒÃÇÉÏÊöÌáµ½µÄNodeµÄÊôÐԺͷ½·¨¶øÒÑ£¬»¹ÊDzÙ×÷<table>±ê¼ÇµÄÄÚÈÝ¡£ÓÐÐÂÒâµÄÊÇ£¬ÎÒÃÇҪʵÏÖÒ»¸öÁôÑÔ²¾¡£Êǵģ¬ÁôÑÔ²¾£¬Äã¿ÉÒÔÍùÀïÃæÁôÑÔ£¬Ö»ÊDz»ÄÜË¢ÐÂàÞ¡£
¡¡¡¡Àý×Ó6 ¨C sample5_1.htm£º
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function insertStr() {
var f = document.form1;
var value = f.str.value;
if(value!="") {
// ´Ó×îÖÕµÄTextNode½Úµã¿ªÊ¼£¬ÂýÂýÐγÉ<tbody>½á¹¹
var text = document.createTextNode(value); //н¨Ò»¸öTextNode½Úµã
var td = document.createElement("td"); //н¨Ò»¸ötdÀàÐ͵ÄElement½Úµã
var tr = document.createElement("tr"); //н¨Ò»¸ötrÀàÐ͵ÄElement½Úµã
var tbody = document.createElement("tbody"); //н¨Ò»¸ötbodyÀàÐ͵ÄElement½Úµã
td.appendChild(text); //½«½Úµãtext¼ÓÈëtdÖÐ
tr.appendChild(td); //½«½Úµãtd¼ÓÈëtrÖÐ
tbody.appendChild(tr); //½«½Úµãtr¼ÓÈëtbodyÖÐ
var parNode = document.getElementById("table1"); //¶¨Î»µ½tableÉÏ
parNode.insertBefore(tbody,parNode.firstChild); //½«½Úµãtbody²åÈëµ½½Úµã¶¥²¿
//parNode.appendChild(tbody); //½«½Úµãtbody¼ÓÈë½Úµãβ²¿
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="">
<input name="str" type="text" id="str" value="">
<input name="insert" type="button" id="insert" value="ÁôÑÔ" >
</form>
<table width="400" border="1" cellspacing="0" cellpadding="0" id="table1">
<tbody>
<tr>
<td height="25">ÍøÓÑÁôÑÔÁÐ±í£º</td>
</tr>
</tbody>
</table>
</body>
</html>
¡¡¡¡ÎÒÃÇ֮ǰ˵¹ý£¬<table>µÄ×Ó½ÚµãÊÇ<tbody>£¬<tbody>µÄ×Ó½Úµã²ÅÊÇ< tr>£¬<tr>ÊÇ<td>µÄ¸¸½Úµã£¬×îºó<td>ÄÚ²¿µÄTextNode½Úµã¡£ËùÒÔ£¬Íù< table>Ôö¼Óµ¥Ôª¸ñÐÐÒªÖð¼¶Ðγɣ¬¾ÍÏñÍùÊ÷ÀïÃæÌí¼ÓÒ»¸öÖ¦èâÒ»Ñù£¬ÒªÓÐÒ¶×ÓÓо¶¡£¿´¿´£¬Õâ¸öÁôÑÔ²¾ÊDz»ÊǺܼòµ¥°¡¡£Õâ¸öÀý×ÓͬʱҲÑÝʾÁËÍù <table>±í¸ñ±ê¼ÇÀïÃæÔö¼ÓÄÚÈݵÄÁíÒ»ÖÖ·½·¨¡£
¡¡¡¡E¡¢Ê¹ÓÃDOM²Ù×÷XMLÎĵµ
¡¡¡¡ÔÚÊý¾Ý±íʾ·½Ã棬XMLÎĵµ¸ü¼Ó½á¹¹»¯¡£DOMÔÚÖ§³ÖHTMLµÄ»ù´¡ÉÏÌṩÁËһϵÁеÄAPI£¬Ö§³ÖÕë¶ÔXMLµÄ·ÃÎʺͲÙ×÷¡£ÀûÓÃÕâЩAPI£¬ÎÒÃÇ¿ÉÒÔ´ÓXMLÖÐÌáÈ¡ÐÅÏ¢£¬¶¯Ì¬µÄ´´½¨ÕâЩÐÅÏ¢µÄHTML³ÊÏÖÎĵµ¡£´¦Àí XMLÎĵµ£¬Í¨³£×ñÑ¡°¼ÓÔØXMLÎĵµ¨¤ÌáÈ¡ÐÅÏ¢¨¤¼Ó¹¤ÐÅÏ¢¨¤´´½¨HTMLÎĵµ¡±µÄ¹ý³Ì¡£ÏÂÃæµÄÀý×ÓÑÝʾÁËÈçºÎ¼ÓÔØ²¢´¦ÀíXMLÎĵµ¡£
¡¡¡¡Õâ¸öÀý×Ó°üº¬Á½¸öJSº¯Êý¡£loadXML()¸ºÔð¼ÓÔØXMLÎĵµ£¬ÆäÖмȰüº¬¼ÓÔØXMLÎĵµµÄ2¼¶DOM´úÂ룬ÓÖÓÐʵÏÖͬÑù²Ù×÷µÄ MicrosoftרÓÐAPI´úÂë¡£ÐèÒªÌáÐÑ×¢ÒâµÄÊÇ£¬Îĵµ¼ÓÔØ¹ý³Ì²»ÊÇ˲¼äÍê³ÉµÄ£¬ËùÒÔ¶ÔloadXML()µÄµ÷Óý«ÔÚ¼ÓÔØÎĵµÍê³É֮ǰ·µ»Ø¡£Òò´Ë£¬ÐèÒª´«µÝ¸øloadXML()Ò»¸öÒýÓã¬ÒÔ±ãÎĵµ¼ÓÔØÍê³Éºóµ÷Óá£
¡¡¡¡Àý×ÓÖеÄÁíÍâÒ»¸öº¯ÊýmakeTable()£¬ÔòÔÚXMLÎĵµ¼ÓÔØÍê±ÏÖ®ºó£¬Ê¹ÓÃ×îºóǰ½éÉܹýµÄDOMÓ¦Óñà³Ì½Ó¿Ú¶ÁÈ¡XMLÎĵµÐÅÏ¢£¬²¢ÀûÓÃÕâЩÐÅÏ¢ÐγÉÒ»¸öеÄtable±í¸ñ¡£
¡¡¡¡Àý×Ó7 -- sample6_1.htm£º
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>ÎÞ±êÌâÎĵµ</title>
<script language="javascript">
function loadXML(handler) {
var url = "employees.xml";
if(document.implementation&&document.implementation.createDocument) {
var xmldoc = document.implementation.createDocument("", "", null);
xmldoc.onload = handler(xmldoc, url);
xmldoc.load(url);
}
else if(window.ActiveXObject) {
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange = function() {
if(xmldoc.readyState == 4) handler(xmldoc, url);
}
xmldoc.load(url);
}
}
function makeTable(xmldoc, url) {
var table = document.createElement("table");
table.setAttribute("border","1");
table.setAttribute("width","600");
table.setAttribute("class","tab-content");
document.body.appendChild(table);
var caption = "Employee Data from " + url;
table.createCaption().appendChild(document.createTextNode(caption));
var header = table.createTHead();
var headerrow = header.insertRow(0);
headerrow.insertCell(0).appendChild(document.createTextNode("ÐÕÃû"));
headerrow.insertCell(1).appendChild(document.createTextNode("Ö°Òµ"));
headerrow.insertCell(2).appendChild(document.createTextNode("¹¤×Ê"));
var employees = xmldoc.getElementsByTagName("employee");
for(var i=0;i<employees.length;i++) {
var e = employees;
var name = e.getAttribute("name");
var job = e.getElementsByTagName("job")[0].firstChild.data;
var salary = e.getElementsByTagName("salary")[0].firstChild.data;
var row = table.insertRow(i+1);
row.insertCell(0).appendChild(document.createTextNode(name));
row.insertCell(1).appendChild(document.createTextNode(job));
row.insertCell(2).appendChild(document.createTextNode(salary));
}
}
</script>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body >
</body>
</html>
¹©¶ÁÈ¡µ÷ÓõÄXMLÎĵµ ¨C employees.xml£º
<?xml version="1.0" encoding="gb2312"?>
<employees>
<employee name="J.Doe">
<job> rogrammer</job>
<salary>32768</salary>
</employee>
<employee name="A.Baker">
<job>Sales</job>
<salary>70000</salary>
</employee>
<employee name="Big Cheese">
<job>CEO</job>
<salary>100000</salary>
</employee>
</employees>
7.5¡¢´¦ÀíXMLÎĵµ
¡¡¡¡ÍÑÀëXMLÎĵµµÄAJAXÊDz»ÍêÕûµÄ¡£ÔÚ±¾²¿·ÖδÍê³É֮ǰ£¬ÓжÁÕß˵AJAX¸ÄÃû½ÐAJAH£¨HÓ¦¸Ã´ú±íHTML°É£©±È½ÏºÏÊÊ¡£Ó¦¸Ã³ÐÈÏ£¬XMLÎĵµÔÚÊý¾ÝµÄ½á¹¹»¯±íʾÒÔ¼°½Ó¿Ú¶Ô½ÓÉÏÓÐÏÈÌìµÄÓÅÊÆ£¬µ«Ò²²»ÊÇËùÓеÄÊý¾Ý¶¼Ó¦¸ÃÓÃXML±íʾ¡£ÓÐЩʱºòµ¥´¿µÄÎı¾±íʾ¿ÉÄÜ»á¸üºÏÊÊ¡£ÏÂÃæÏȾٸöAJAX´¦Àí·µ»ØXMLÎĵµµÄÀý×ÓÔÙÌÖÂÛʲôʱºòʹÓÃXML¡£
7.5.1¡¢´¦Àí·µ»ØµÄXML
¡¡¡¡ Àý×Ó8 -- sample7_1.htm£º
¡¡¡¡ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃDzÉÓÃ֮ǰȷ¶¨µÄAJAX¿ª·¢¿ò¼Ü£¬ÉÔ΢ÐÞ¸ÄÒ»ÏÂbodyÄÚÈݺÍprocessRequestµÄÏàÓ¦·½Ê½£¬½«ÏÈǰµÄemployees.xmlµÄÄÚÈݶÁÈ¡³öÀ´²¢ÏÔʾ¡£
¡¡¡¡bodyµÄÄÚÈÝÈçÏ£º
<input type="button" name="read"
value="¶ÁÈ¡XML" >
processRequest()·½·¨ÐÞ¸ÄÈçÏ£º
// ´¦Àí·µ»ØÐÅÏ¢µÄº¯Êý
function processRequest() {
if (http_request.readyState == 4) { // Åж϶ÔÏó״̬
if (http_request.status == 200) { // ÐÅÏ¢ÒѾ³É¹¦·µ»Ø£¬¿ªÊ¼´¦ÀíÐÅÏ¢
var returnObj = http_request.responseXML;
var xmlobj = http_request.responseXML;
var employees = xmlobj.getElementsByTagName("employee");
var feedbackStr = "";
for(var i=0;i<employees.length;i++) { // Ñ»·¶ÁÈ¡employees.xmlµÄÄÚÈÝ
var employee = employees;
feedbackStr += "Ô±¹¤£º" + employee.getAttribute("name");
feedbackStr +=
" ְλ£º" + employee.getElementsByTagName("job")[0].firstChild.data;
feedbackStr +=
" ¹¤×Ê£º" + employee.getElementsByTagName("salary")[0].firstChild.data;
feedbackStr += "\r\n";
}
alert(feedbackStr);
} else { //Ò³Ãæ²»Õý³£
alert("ÄúËùÇëÇóµÄÒ³ÃæÓÐÒì³£¡£");
}
}
}
¡¡¡¡ÔËÐÐһϣ¬¿´À´Ð§¹û»¹²»´í£º
7.5.2¡¢Ñ¡ÔñºÏÊʵÄXMLÉú³É·½Ê½
¡¡¡¡ÏÖÔÚµÄwebÓ¦ÓóÌÐòÍùÍù²ÉÓÃÁËMVCÈý²ã°þÀëµÄÉè¼Æ·½Ê½¡£XML×÷ΪһÖÖÊý¾Ý±£´æ¡¢³ÊÏÖ¡¢½»»¥µÄÎĵµ£¬ÆäÊý¾ÝÍùÍùÊǶ¯Ì¬Éú³ÉµÄ£¬Í¨³£ÓÉ JavaBeanת»»¹ýÀ´¡£ÓÉJavaBeanת»»³ÉXMLÎĵµµÄ·½Ê½Óкü¸ÖÖ£¬Ñ¡ÔñºÏÊʵÄת»»·½Ê½ÍùÍùÄܴﵽʰ빦±¶µÄЧ¹û¡£ÏÂÃæ½éÉÜÁ½ÖÖ³£Óõķ½Ê½£¬ÒÔ±ãÐèÒªµÄʱºò¸ù¾ÝÇé¿öÈ¡Éá¡£
¡¡¡¡A¡¢Àà×ÔÐÐÐòÁл¯³ÉXML
¡¡¡¡Àà×ÔÐÐÐòÁл¯³ÉXML¼´Ã¿¸öÀ඼ʵÏÖ×Ô¼ºµÄtoXML()·½·¨£¬Ñ¡ÔñºÏÊʵÄAPI¡¢Êʵ±µÄXML½á¹¹¡¢¾¡Á¿±ã½ÝµÄÉú³ÉÂß¼¿ìËÙÉú³ÉÏàÓ¦µÄXMLÎĵµ¡£ÏÔÈ»£¬ÕâÖÖ·½Ê½±ØÐëÒªÇóÿ¸öÀà±àдרÃŵÄXMLÉú³É´úÂ룬ÿ¸öÀàÖ»Äܵ÷ÓÃ×Ô¼ºµÄtoXML()·½·¨¡£Ó¦ÓÃÖîÈçJDOMµÈһЩÏֳɵÄAPI£¬¿ÉÒÔ¼õÉÙ²»ÉÙ¿ª·¢Í¶Èë¡£Àý×Ó9ÊÇÒ»¸öÀûÓÃJDOMµÄAPIÐγɵÄtoXML()·½·¨¡£
¡¡¡¡Àý×Ó9 -- toXml() µÄ JDOM ʵÏÖ -- EmployÀàµÄtoXml()·½·¨£º
public Element toXml() {
Element employee = new Element(¡°employee¡±);
Employee.setAttribute(¡°name¡±,name);
Element jobE = new Element(¡°job¡±).addContent(job);
employee.setContent(jobE);
Element salaryE = new Element(¡°salary¡±).addContent(salary);
employee.setContent(salaryE);
return employee;
}
¡¡¡¡JDOMÌṩÁËÏֳɵÄAPI£¬Ê¹µÃÐòÁл¯³ÉXMLµÄ¹¤×÷¸ü¼Ó¼òµ¥£¬ÎÒÃÇÖ»ÐèÒª°ÑtoXML()ÍâÃæ°ü×°Ò»¸öDocument£¬È»ºóʹÓà XMLOutputter°ÑÎĵµÐ´Èëservlet¾Í¿ÉÒÔÁË¡£toXml()ÔÊÐíµÝ¹éµ÷ÓÃÆä×ÓÀàµÄtoXML()·½·¨£¬ÒÔ±ãÉú³É°üº¬×ÓͼµÄXMLÎĵµ¡£
¡¡¡¡Ê¹ÓÃÀà×ÔÐÐÐòÁл¯³ÉXMLµÄ·½Ê½£¬ÒªÃ¿¸öÀ඼ʵÏÖ×Ô¼ºµÄtoXML()·½·¨£¬¶øÇÒ´æÔÚÊý¾ÝÄ£ÐÍÓëÊÓͼñîºÏµÄÎÊÌ⣬¼´ÒªÃ´ÎªÃ¿¸ö¿ÉÄܵÄÊÓͼ±àд¶ÀÁ¢µÄtoXML()·½·¨£¬ÒªÃ´ÐĸÊÇéÔ¸½ÓÊÕÈßÓàµÄÊý¾Ý£¬Ò»µ©Êý¾Ý½á¹¹»òÕßÎĵµ·¢Éú¸Ä±ä£¬toXML()¾ÍÒª×ö±ØÒªµÄÐ޸ġ£
¡¡¡¡B¡¢Ò³ÃæÄ£°åÉú³ÉXML·½Ê½
¡¡¡¡Ò»°ãµÄ£¬¿ÉÒÔ²ÉÓÃͨÓõÄÒ³ÃæÄ£°å¼¼ÊõÀ´Éú³ÉXMLÎĵµ£¬Õâ¸öXML Îĵµ¿ÉÒÔ·ûºÏÈκÎÐèÒªµÄÊý¾ÝÄ£ÐÍ£¬¹©AJAXÁé»îµÄµ÷Óá£ÁíÍ⣬ģ°å¿ÉÒÔ²ÉÓÃÈκαê¼ÇÓïÑÔ±àд£¬Ìá¸ß¹¤×÷ЧÂÊ¡£ÏÂÃæÊÇÒ»¸ö²ÉÓÃStruts±êÇ©¿â±àдµÄ XMLÎĵµ£¬Êä³ö֮ǰÌáµ½µÄemployees.xml£º
¡¡¡¡Sample8_2.jsp£º
<%@ page c import="Employee"%>
<%@ page import="java.util.Collection,java.util.ArrayList"%>
<?xml version="1.0"?>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%
Employee em1 = new Employee();
em1.setName(" J .Doe");
em1.setJob(" Programmer");
em1.setSalary("32768");
Employee em2 = new Employee();
em2.setName("A.Baker");
em2.setJob("Sales");
em2.setSalary("70000");
Employee em3 = new Employee();
em3.setName("Big Cheese");
em3.setJob("CEO");
em3.setSalary("100000");
Collection employees = new ArrayList();
employees.add(em1);
employees.add(em2);
employees.add(em3);
pageContext.setAttribute("employees",employees);
%>
<employees>
<logic:iterate name="employees" id="employee">
<employee name="<bean:write name='employee' property='name'/>">
<job><bean:write name="employee" property="job"/></job>
<salary><bean:write name="employee" property="salary"/></salary>
</employee>
</logic:iterate>
</employees>
¡¡¡¡²ÉÓÃÒ³ÃæÄ£°åÉú³ÉXML·½Ê½£¬ÐèҪΪÿ¸öÐèÒªµÄµÄÊý¾ÝÄ£Ðͽ¨Á¢Ò»¸ö¶ÔÁ¢µÄJSPÎļþ£¬ÓÃÀ´Éú³É·ûºÏ¹æ·¶µÄXMLÎĵµ£¬¶ø²»Äܽö½öÔÚÀàµÄtoXML()·½·¨ÖÐ×éÖ¯¶ÔÏóͼÀ´ÊµÏÖ¡£²»¹ý£¬µ¹ÊÇ¿ÉÒÔ¸ü¼Ó·½±ãµÄÈ·±£±ê¼ÇÆ¥Åä¡¢ÔªËØºÍÊôÐÔµÄ˳ÐòÕýÈ·ÒÔ¼°XMLʵÌåÕýȷתÒå¡£
¡¡¡¡²Î¿¼×ÊÁÏÖÐPhilip McCarthyµÄÎÄÕ»¹ÃèÊöÁËÒ»ÖÖJavascript¶ÔÏó±ê×¢µÄÉú³É·½Ê½£¬±¾ÎÄÔڴ˲»×¸Êö¡£ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔ×ÔÐв鿴Á˽⡣
7.5.3¡¢ÈçºÎÔÚʹÓÃXML»¹ÊÇÆÕͨÎı¾¼äȨºâ
¡¡¡¡Ê¹ÓÃXMLÎĵµÈ·ÊµÓÐÆä·½±ãÖ®´¦¡£²»¹ýXMLÎĵµµÄijЩÎÊÌâµ¹ÊÇÒª¿¼ÂÇһϣ¬±ÈÈç˵ÑÓ³Ù£¬¼´·þÎñÆ÷²»ÄÜÁ¢¼´½âÎöXMLÎĵµ³ÉΪDOMÄ£ÐÍ¡£Õâ¸öÎÊÌâÔÚÒ»¶¨³Ì¶ÈÉÏ»áÓ°ÏìAJAXÒªÇóµÄ¿ìËÙ·´Ó¦ÄÜÁ¦¡£ÁíÍ⣬ijЩÇé¿öÏÂÎÒÃDz¢²»ÐèҪʹÓÃXMLÀ´±íʾÊý¾Ý£¬±ÈÈç˵Êý¾Ý×ã¹»¼òµ¥³ÉÖ»ÓÐÒ»¸ö×Ö·û´®¶øÒÑ¡£¾ÍºÃÏñÎÒÃÇ֮ǰÌáµ½µÄÊý¾ÝУÑéºÍ¼¶Áª²Ëµ¥µÄÀý×ÓÒ»Ñù¡£ËùÒÔ£¬¸öÈËÈÏΪÔÚÏÂÃæÕâЩÇé¿öÏ¿ÉÒÔ¿¼ÂÇʹÓÃXMLÀ´×÷ΪÊý¾Ý±íʾµÄ½éÖÊ£º
* Êý¾Ý±È½Ï¸´ÔÓ£¬ÐèÒªÓÃXMLµÄ½á¹¹»¯·½Ê½À´±íʾ
* ²»Óÿ¼ÂÇ´ø¿íºÍ´¦ÀíЧÂÊÖ§³ö
* ÓëϵͳÆäËûAPI»òÕ߯äËûϵͳ½»»¥£¬×÷ΪһÖÖÊý¾ÝÖÐתÖнé
* ÐèÒªÌØ¶¨¸÷ʽµÄÊä³öÊÓͼ¶øÎı¾ÎÞ·¨±íʾµÄ
¡¡¡¡×ÜÖ®£¬ÒªÈÏÕæÆÀ¹ÀÁ½ÖÖ±íʾ·½Ê½µÄ±íʾ³É±¾ºÍЧÂÊ£¬Ñ¡ÔñºÏÊʵĺÏÀíµÄ±íʾ·½Ê½¡£¡¡¡¡
¡¡¡¡ÔÚ¹ØÓÚAJAXµÄϵÁÐÎÄÕµÄÏÂһƪ£¬ÎÒÃǽ«×ÛºÏʹÓÃDOMºÍXML£¬À´ÊµÏÖÒ»¸ö¿ÉÒԳ־û¯µÄ¼òµ¥ÁôÑÔ²¾¡£ÁíÍ⣬»¹½«ÊÔ×ÅÄ£ÄâMSN SpaceµÄ²¿·Ö¹¦ÄÜ£¬À´Ìå»áAJAXµÄ÷ÈÁ¦¡£
²Î¿¼ÎÄÕ£º
×÷Õߣº fanscial ±êÌ⣺ ¡¶AJAX¼ò½é¡·
꿅᣼
http://www.blogjava.net/fanscial/archive/2005/08/31/11628.html
×÷Õߣº Amour GUO ±êÌ⣺ ¡¶AJAXÄÚ²¿½»Á÷Îĵµ¡·
꿅᣼
http://www.dragonson.com/doc/ajax.html
×÷Õߣº MoztwWiki ±êÌ⣺ ¡¶AJAXÉÏÊÖÆª¡·
꿅᣼
http://wiki.moztw.org/index.php/AJAX_%E4%B8%8A%E6%89%8B%E7%AF%87
×÷Õߣº Philip McCarthy ±êÌ⣺ ÃæÏòJava¿ª·¢ÈËÔ±µÄAjax:¹¹½¨¶¯Ì¬µÄJavaÓ¦ÓóÌÐò
꿅᣼
http://kb.csdn.net/java/Articles ... 4-0e3eb733c8b5.html
×÷Õߣº Philip McCarthy ±êÌ⣺ ÃæÏòJava¿ª·¢ÈËÔ±µÄAjax:AjaxµÄJava¶ÔÏóÐòÁл¯
꿅᣼
http://kb.csdn.net/java/Articles ... b-eadde723e734.html
×÷Õߣº David Flanagan ÊéÃû£º ¡¶JavascriptȨÍþÖ¸ÄÏ¡·
[
±¾Ìû×îºóÓÉ aming ÓÚ 2008-4-7 09:31 ±à¼ ]