Getting All The Data In An Xml Via Javascript
Trying to spool out all the post and also all the comment for each post from the DB using ajax/javascript. I'm getting the actual data from the DB via ajax correctly but having iss
Solution 1:
I think you might want to change your XML structure to something like this ..
<posts><post><author><name>John Doe</name><acctype>Admin</acctype></author><time>09/07/2013</time><msg>This is a message</msg><img><url>post_img.jpg</url></img><comments><comment><author><name>John Smith</name><acctype>basic</acctype></author><time>09/07/2013</time><content>comment number 1</content></comment><comment><author><name>Jane Doe</name><acctype>basic</acctype></author><time>09/07/2013</time><content>comment number 1</content></comment></comments></post><post>
......
<post></posts>
And then you can have your JavaScript as follows ...
var post_holder_div = document.getElementById('status_update_msg_area');
post_holder_div.innerHTML = '';
var posts = xmlDom.getElementsByTagName("post"), domString = '';
for (var i = 0; i < posts.length; i++) {
var poster = posts[i].getElementsByTagName('author')[0].childNodes[0].textContent,
message = posts[i].getElementsByTagName('msg')[0].textContent,
time = posts[i].getElementsByTagName('time')[0].textContent,
comments = posts[i].getElementsByTagName('comments')[0].childNodes;
domString += '<p><strong>Poster name:</strong> ' + poster + '</p>';
domString += '<p><strong>Post:</strong> ' + message + '</p>';
if (comments.length) {
domString += '<h4>Comments</h4>';
for (var j = 0; j < comments.length; j++) {
var commenter = comments[j].getElementsByTagName('author')[0].childNodes[0].textContent,
comment = comments[j].getElementsByTagName('content')[0].textContent;
domString += '<p>' + commenter + ': <em>' + comment + '</em></p>';
}
}
}
post_holder_div.innerHTML = domString;
This should give you a rough idea. With the comments you want to have them nested i.e. <comment/>
as a subchild of <comments/>
. is to as is to
NB: Of course the JS code could be refactored and be neater but this is just help you on your way.
I hope this helps :)
Post a Comment for "Getting All The Data In An Xml Via Javascript"