【问题标题】:Can not get XML attribute value using javascript and jquery无法使用 javascript 和 jquery 获取 XML 属性值
【发布时间】:2013-01-09 02:46:38
【问题描述】:

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>");    
        }
    });

例如,我提供了函数 year 是 2012,month 是 12,但是,fliter $("PubYear[Year='" + year + "']") 似乎不适用于 find 函数?如何解决问题?谢谢

【问题讨论】:

  • 好吧,我不需要 $() 就是这样。

标签: javascript jquery html xml nodes


【解决方案1】:

使用过滤器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>");    
        }
    });
}

【讨论】:

    【解决方案2】:

    这里我是这样用的:

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多