I’m parsing an xml doc with jquery and am having trouble getting it to parse correctly. I think the easiest way to explain everything is just to show you what I have, what I want my output to be, and what I’m currently getting…
XML FILE:
[code]
<Results>
<System systemName=”app” />
<System systemName=”app2″ />
<System systemName=”app3″>
<server servername=”server1″>
<File>filepath.log</File>
<result>Fail</result>
</server>
<server servername=”server2″>
<File>filepath to .log</file>
<result>Fail</result>
</server>
<server servername=”server3″>
<File>filepath to .log</file>
<result>Fail</result>
</server>
<server servername=”server4″>
<File>filepath to .log</file>
<result>Fail</result>
</server>
</System>
<System systemName=”app4″>
<server servername=”server11″>
<File>filepath to .log</file>
<result>Fail</result>
</server>
<server servername=”server12″>
<File>filepath to .log</file>
<result>Fail</result>
</server>
<server servername=”server13″>
<File>filepath to .log</file>
<result>Fail</result>
</server>
<server servername=”server14″>
<File>filepath to .log</file>
<result>Fail</result>
</server>
</System>
<System systemName=”app5″ />
<System systemName=”app6″ />
</Results >
my .js
[code]
$(document).ready(function()
{
$.ajax({
type: “GET”,
url: “servers.xml”,
dataType: “xml”,
success: function(xml) { parseXml(xml); }
});
});
function parseXml(xml)
{
//find every System node and print the childNode data
$(xml).find(“System”).each(function()
{
$(“#output”).append(“AppName:”+$(this).attr(“systemName”) + “<br />”);
$(“#output”).append(“ServerName:”+$(this).find(“serverName”).attr(“servername”)+ “<br />”);
$(“#output”).append(“filepath:”+$(this).find(“File”).text() + “<br />”);
$(“#output”).append(“Fail?:”+$(this).find(“result”).text() + “<br /> <br />”);
(“servername”));
});
}
output:
[code]
AppName:app
ServerName:undefined
filepath:
Fail?:
AppName:app2
ServerName:undefined
filepath:
Fail?:
AppName:app3
ServerName:server1
filepath:filepath.logfilepath.logfilepath.logfilepath.log
Fail?:FailFailFailFail
…cut for length
the problem is that my code isn’t seeing the different tags for <file></file> and <fail></fail>.
For example, output for AppName: app3 should be:
(keep in mind that filepath.log is different for each server, just used it here as an example).
[code]
AppName:app3
ServerName:server1
filepath:filepath.log
Fail?:Fail
ServerName:server2
filepath:filepath.log
Fail?:Fail
ServerName:server3
filepath:filepath.log
Fail?:Fail
ServerName:server4
filepath:filepath.log
Fail?:Fail
THANKS!