Reputation: 13555
XML:
<?xml version="1.0" encoding="utf-8"?>
<Publications LatestPubDate="2012-12-20" Version="0">
<PubYear Year="2012">
<PubMonth Month="12">
<Publication Name="Headline" PubDay="15" ThumbnailWidth="300" ThumbnailHeight="400" ThumbnailPath="FlippingBook/Dev/Frontend/OutPutFolder/Headline/2012/12/15/0/0/A/Content/1/Pg001.jpg" Version="0" Visible="true"/>
<Publication Name="Headline" PubDay="16" ThumbnailWidth="300" ThumbnailHeight="400" ThumbnailPath="FlippingBook/Dev/Frontend/OutPutFolder/Headline/2012/12/16/0/0/A/Content/1/Pg001.jpg" Version="0" Visible="true"/>
<Publication Name="Headline" PubDay="17" ThumbnailWidth="300" ThumbnailHeight="400" ThumbnailPath="FlippingBook/Dev/Frontend/OutPutFolder/Headline/2012/12/17/0/0/A/Content/1/Pg001.jpg" Version="0" Visible="true"/>
<Publication Name="Headline" PubDay="18" ThumbnailWidth="300" ThumbnailHeight="400" ThumbnailPath="FlippingBook/Dev/Frontend/OutPutFolder/Headline/2012/12/18/0/0/A/Content/1/Pg001.jpg" Version="0" Visible="true"/>
<Publication Name="Headline" PubDay="19" ThumbnailWidth="300" ThumbnailHeight="400" ThumbnailPath="FlippingBook/Dev/Frontend/OutPutFolder/Headline/2012/12/19/0/0/A/Content/1/Pg001.jpg" Version="0" Visible="true"/>
<Publication Name="Headline" PubDay="20" ThumbnailWidth="300" ThumbnailHeight="400" ThumbnailPath="FlippingBook/Dev/Frontend/OutPutFolder/Headline/2012/12/20/0/0/A/Content/1/Pg001.jpg" Version="0" Visible="true"/>
</PubMonth>
</PubYear>
</Publications>
js:
function get_past_issues(year,month) {
$.ajax({ url: './demo/Headline/PublicationList.xml',
async: false,
success: function(xml) {
//$("#dialog").append("<div class = 'issues'>");
$(xml).find("Publications").find($("PubYear[Year='" + year + "']")).each(function() {
//alert ($(this).attr ('Year'));
$(xml).find("Publications").find($("PubMonth[Month='" + month + "']")).find("Publication").each(function() {
alert ($(this).attr ('ThumbnailPath'));
});
});
//$("#dialog").append("</div>");
}
});
For instance I have provided the function year is 2012 and month is 12, however, the fliter $("PubYear[Year='" + year + "']") seems do not work with the find function? How to fix the problem ? thanks
Upvotes: 0
Views: 8463
Reputation: 74738
Here i used it this way:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
function get_past_issues(year, month){
$.ajax({
url: 'list.xml',
type:"get",
async: false,
success: function(xml) {
$(xml).find("PubYear[Year='" + year + "']").find("PubMonth[Month='" + month + "']").each(function(){
console.log($(this).find('Publication').attr('ThumbnailPath'));
// Output is:FlippingBook/Dev/Frontend/OutPutFolder/Headline/2012/12/15/0/0/A/Content/1/Pg001.jpg
});
},
error:function(){
alert('err');
}
});
}
$(function(){
get_past_issues(2012, 12);
});
</script>
Upvotes: 1
Reputation: 15106
Use fliter find("PubYear[Year='" + year + "']")
function get_past_issues(year,month) {
$.ajax({ url: './demo/Headline/PublicationList.xml',
async: false,
success: function(xml) {
//$("#dialog").append("<div class = 'issues'>");
$(xml).find("Publications").find("PubYear[Year='" + year + "']").each(function() {
//alert ($(this).attr ('Year'));
$(xml).find("Publications").find("PubMonth[Month='" + month + "']").find("Publication").each(function() {
alert ($(this).attr ('ThumbnailPath'));
});
});
//$("#dialog").append("</div>");
}
});
}
Upvotes: 1