JQUERY处理xml数据

时间:2016-11-19 08:46:36

标签: jquery xml

我有以下XML

<response>
    <item>
        <sku>83340</sku>
        <vendor>83340</vendor>
        <errors>
            <msg>Real-Time Error</msg>
        </errors>
    </item>
    <item>
        <sku>83340</sku>
    </item>
    <item>
        <sku>05319GS11007</sku>
         <vendor>83340</vendor>
        <errors>
            <msg>Fatal Error</msg>
        </errors>
    </item>
</response>

使用JQUERY,我想只搜索带有ERROR的项目,并获得相应的SKU。

我可以找到有错误的项目,但是如何获得相应的SKU以便我可以说SKU有错误:

var errors = '';
jQuery(res).find("errors").each(function ( i ) {
            jQuery(this).find("msg").each(function () {
                errors += ' - ' + jQuery(this).text(); + '\n'
            });
        });

类似这样的事情

jQuery(res).find("item").each(function ( i ) {
            if(jQuery(this).has( "error" )){
                var stSKU = jQuery(this).find("sku").text();
                var stError = jQuery(this).find("msg").text();.each(function () {
                    errors += ' # SKU # 'stSKU ' - ' + stError + '\n'
                });
            }
        });

输出将如下:

 SKU # 83340 has Real Time Error. 
 SKU # 05319GS11007 has  Fatal Error. 

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery.parseXML()来解析任何XML

更多阅读here

var xml = `<response>
    <item>
        <sku>83340</sku>
        <vendor>83340</vendor>
        <errors>
            <msg>Real-Time Error</msg>
        </errors>
    </item>
    <item>
        <sku>83340</sku>
    </item>
    <item>
        <sku>05319GS11007</sku>
         <vendor>83340</vendor>
        <errors>
            <msg>Fatal Error</msg>
        </errors>
    </item>
</response>`;

var xmlObj = $.parseXML( xml );
var err;
$(xmlObj).find("item").each(function(item){
   err = $(this).find("errors");
   if(err.length){
     console.log("SKU #" + $(this).find("sku").text() + " has " + $(err).find("msg").text());
     }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>