Jquery 处理XML文件时出现问题

Jquery 处理XML文件时出现问题,jquery,xml,Jquery,Xml,我正在使用JQuery检索XML文件。XML文件是根据JQuery传递给它的参数动态生成的(PHP)。例如,我请求关于三个ID的信息(在本例中:0ZJB001、5YH043、9TQ987)。返回的XML文件包含请求的ID和找到的项的列表。然后根据这些值更改跨度内容。我的工作很好,除非退回的物品少于要求的数量。因此,如果请求了三项,只返回了两项,那么JQuery-each语句只执行两次。相反,我需要它为每个ItemId执行,并从相应的ASIN项中检索详细信息,或者使用一些默认详细信息进行更新 示例

我正在使用JQuery检索XML文件。XML文件是根据JQuery传递给它的参数动态生成的(PHP)。例如,我请求关于三个ID的信息(在本例中:0ZJB001、5YH043、9TQ987)。返回的XML文件包含请求的ID和找到的项的列表。然后根据这些值更改跨度内容。我的工作很好,除非退回的物品少于要求的数量。因此,如果请求了三项,只返回了两项,那么JQuery-each语句只执行两次。相反,我需要它为每个ItemId执行,并从相应的ASIN项中检索详细信息,或者使用一些默认详细信息进行更新

示例XML文件格式(不精确,简化了):

试一试


谢谢你,阿伦。经过一些修改,它成功了。例如,我对return语句的“$(itemId).text()”和$(xml).find进行了更改。我不知道这是因为我的函数的方式还是什么(我通常使用PHP)。无论如何,谢谢你非常有用的回复。
<ItemLookupResponse>
    <Items>
        <Request>
            <ItemLookupRequest>
                <ItemId>0ZJB001</ItemId>
                <ItemId>5YH043</ItemId>
                <ItemId>9TQ987</ItemId>
                <VariationPage>All</VariationPage>
            </ItemLookupRequest>
        </Request>
        <Item>
            <ASIN>0ZJB001</ASIN>
            <OfferSummary>
                <TotalNew>0</TotalNew>
                <TotalUsed>0</TotalUsed>
                <TotalCollectible>0</TotalCollectible>
                <TotalRefurbished>0</TotalRefurbished>
            </OfferSummary>
        </Item>
        <Item>
            <ASIN>9TQ987</ASIN>
            <OfferSummary>
                <LowestNewPrice>
                    <Amount>1000</Amount>
                    <CurrencyCode>USD</CurrencyCode>
                    <FormattedPrice>$10.00</FormattedPrice>
                </LowestNewPrice>
                <TotalNew>1</TotalNew>
                <TotalUsed>0</TotalUsed>
                <TotalCollectible>0</TotalCollectible>
                <TotalRefurbished>0</TotalRefurbished>
            </OfferSummary>
        </Item>
    </Items>
</ItemLookupResponse>
foreach(Items) {
    if(exists ItemId && ASIN) {
        //update span with price
    } else {
        //update span with default text
    }
}
function callback(xml){
    var itemIds = xml.find('Request ItemLookupRequest ItemId');
    var items = xml.find('Items > Item');

    itemIds.each(function(idx, itemId){
        var item = items.filter(function(idx, item){
            return $(item).children('ASIN').text() == itemId;
        });

        if(item.length){
            //update the span with item.find('FormattedPrice').text()
        } else {
            //update the span with default price
        }
    })
}