我有以下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.
感谢。
答案 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>