我会保持这么短:我正在尝试通过一个库的xml文档循环。我有一个应该有效的脚本,但没有。任何人都可以告诉我我哪里做错了吗?
I will keep this very short: I'm trying to make a loop through an xml-document for a gallery. I got a script that should work, but doesn't. Can anyone please tell me where I did wrong?
我不想让这个更长,因为这个问题很简单,从昨天起就一直在思考这个问题,这是我得到的最接近。
I didn't want to make this longer because the problem is simple and have been pondering over this since yesterday and this is the closest I get.
我想循环遍历xml文件并首先打印出path和file。我正在构建一个库,并认为保存图像的所有数据的最佳方法是xml文件,但现在我无法正确循环。在脚本中,我使页面打印出x和i,结果是x为1而i为0,因此在我看来它根本没有通过for循环。
I want to loop through the xml-file and print out "path" and "file" first and most. I'm building a gallery and thought that the best way to save all the data for the images was an xml-file, but now I can't get it to loop correctly. In the script I made the page print out both x and i, which resulted with x being 1 and i being 0, hence it hasn't worked through the for-loop at all as I see it.
任何帮助都会受到赞赏,因为我被困住了。一直在尝试这么多解决方案让我的脑袋在旋转,如果没有朝着正确的方向轻推,我就无法进一步。
Any help would be appreciated, because I'm stuck. Been trying so many solutions that my head is spinning and I can't get any further without a nudge in the right direction.
html / javascript:
The html/javascript:
<script type="text/javascript"> function displayResult() { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","../gallery/gallery.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; x=xmlDoc.getElementsByTagName("session"); for (i=0;i<x.length;i++) { img = "<img src='"; path = (x[0].getElementsByTagName("path")[0].childNodes[0].nodeValue); file = (x[i].getElementsByTagName("file")[i].childNodes[0].nodeValue); end = "' /><br />"; name = (x[i].getElementsByTagName("name")[i].childNodes[0].nodeValue); txt = "x:" + x.length + "| i " + i + "<br />" + img + path + file + end + name + "<br />"; document.getElementById("content").innerHTML = txt; //document.write(txt); } } </script> </head> <body onload="displayResult()"> <div id='content'></div> </body> </html>xml-file:
<gallery> <session> <path>../gallery/beauty/</path> <item> <file>_DSC2331.jpg</file> <name>Picture 1</name> </item> <item> <file>_DSC2339.jpg</file> <name>Picture 2</name> </item> <item> <file>_DSC2350.jpg</file> <name>Picture 3</name> </item> <date>2011-08-03</date> </session> </gallery>推荐答案
如果我可以提出一些建议:
If I can make some suggestions:
。
<html> <head> <script type="text/javascript"> function loadDoc(url) { var xmlhttp = null; if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET", url, false); xmlhttp.send(); return xmlhttp.responseXML; } function getContent(sessions) { var items = null, i = 0, j = 0, img = "", path = "", file = "", end = "", name = "", txt = ""; for (i = 0; i < sessions.length; i++) { items = sessions[i].getElementsByTagName("item"); path = sessions[i].getElementsByTagName("path")[0].childNodes[0].nodeValue; for (j = 0; j < items.length; j++) { img = "<img src='"; file = items[j].getElementsByTagName("file")[0].childNodes[0].nodeValue; end = "' /><br />"; name = items[j].getElementsByTagName("name")[0].childNodes[0].nodeValue; txt += "session[" + i + "] item[" + j + "]<br />" + img + path + file + end + name + "<br />"; } } return txt; } function displayResult() { var xmlDoc = loadDoc("../gallery/gallery.xml"); var sessions = xmlDoc.getElementsByTagName("session"); var txt = getContent(sessions); document.getElementById("content").innerHTML = txt; } </script> </head> <body onload="displayResult()"> <div id='content'></div> </body> </html>更多推荐
javascript xml阅读器
发布评论