jQuery和XML最好的解析方法
问题描述:
尝试解析来自Web服务vinquery.com的XML结果,通常这些值位于键名称之间,例如你好但是其返回的XML是:jQuery和XML最好的解析方法
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<VINquery Version="1.0.0" Report_Type="BASIC" Date="1/19/2012">
<VIN Number="1ZVFT80N475337065" Status="SUCCESS">
<Vehicle VINquery_Vehicle_ID="32627" Model_Year="2007" Make="Ford" Model="Mustang" Trim_Level="V6 Deluxe Coupe">
<Item Key="VINquery_Vehicle_ID" Value="32627" Unit="" />
<Item Key="Model Year" Value="2007" Unit="" />
<Item Key="Make" Value="Ford" Unit="" />
<Item Key="Model" Value="Mustang" Unit="" />
<Item Key="Trim Level" Value="V6 Deluxe Coupe" Unit="" />
<Item Key="Manufactured in" Value="UNITED STATES" Unit="" />
<Item Key="Production Seq. Number" Value="337065" Unit="" />
<Item Key="Body Style" Value="COUPE 2-DR" Unit="" />
<Item Key="Engine Type" Value="4.0L V6 SOHC 12V" Unit="" />
<Item Key="Transmission-short" Value="5A | 5M" Unit="" />
<Item Key="Transmission-long" Value="5-Speed Automatic | 5-Speed Manual" Unit="" />
<Item Key="Driveline" Value="RWD" Unit="" />
<Item Key="Tank" Value="16.00" Unit="gallon" />
<Item Key="Fuel Economy-city" Value="18 - 19" Unit="miles/gallon" />
<Item Key="Fuel Economy-highway" Value="26 - 28" Unit="miles/gallon" />
<Item Key="Anti-Brake System" Value="Non-ABS | 4-Wheel ABS" Unit="" />
<Item Key="Steering Type" Value="R&P" Unit="" />
<Item Key="Standard Seating" Value="4" Unit="" />
<Item Key="Optional Seating" Value="No data" Unit="" />
<Item Key="Length" Value="187.60" Unit="in." />
<Item Key="Width" Value="74.00" Unit="in." />
<Item Key="Height" Value="54.50" Unit="in." />
</Vehicle>
</VIN>
</VINquery>
什么是最有效的方式来获得使用$(xml)
或其他的说Item Key="Body Style"
的价值?
谢谢!
答
jQuery.parseXML():http://api.jquery.com/jQuery.parseXML/
var xmlDoc = $.parseXML(xmlstring);
$xml = $(xmlDoc);
$(xml).find("Item").each(function() {
if ($(this).attr("Key") == "Body Style")
{
alert($(this).attr("Value"));
}
}
+0
完美,这就是为什么我喜欢这个论坛 – user1343850 2012-04-19 12:03:37
答
使用属性过滤器,尤其是attributeEquals过滤器:
$("node[Key='Bob Style']");
答
http://jsbin.com/ukahum/edit#javascript,html
var x='<VINquery Version="1.0.0" Report_Type="BASIC" Date="1/19/2012">\
<VIN Number="1ZVFT80N475337065" Status="SUCCESS">\
<Vehicle VINquery_Vehicle_ID="32627" Model_Year="2007" Make="Ford" Model="Mustang" Trim_Level="V6 Deluxe Coupe">\
<Item Key="VINquery_Vehicle_ID" Value="32627" Unit="" />\
<Item Key="Model Year" Value="2007" Unit="" />\
<Item Key="Make" Value="Ford" Unit="" />\
<Item Key="Model" Value="Mustang" Unit="" />\
<Item Key="Trim Level" Value="V6 Deluxe Coupe" Unit="" />\
<Item Key="Manufactured in" Value="UNITED STATES" Unit="" />\
<Item Key="Production Seq. Number" Value="337065" Unit="" />\
<Item Key="Body Style" Value="COUPE 2-DR" Unit="" />\
<Item Key="Engine Type" Value="4.0L V6 SOHC 12V" Unit="" />\
<Item Key="Transmission-short" Value="5A | 5M" Unit="" />\
<Item Key="Transmission-long" Value="5-Speed Automatic | 5-Speed Manual" Unit="" />\
<Item Key="Driveline" Value="RWD" Unit="" />\
<Item Key="Tank" Value="16.00" Unit="gallon" />\
<Item Key="Fuel Economy-city" Value="18 - 19" Unit="miles/gallon" />\
<Item Key="Fuel Economy-highway" Value="26 - 28" Unit="miles/gallon" />\
<Item Key="Anti-Brake System" Value="Non-ABS | 4-Wheel ABS" Unit="" />\
<Item Key="Steering Type" Value="R&P" Unit="" />\
<Item Key="Standard Seating" Value="4" Unit="" />\
<Item Key="Optional Seating" Value="No data" Unit="" />\
<Item Key="Length" Value="187.60" Unit="in." />\
<Item Key="Width" Value="74.00" Unit="in." />\
<Item Key="Height" Value="54.50" Unit="in." />\
</Vehicle>\
</VIN>\
</VINquery>';
alert($(x).find("Item[Key='Body Style']").attr('Value'));
你的意思是你已经尝试了jQuery的自动bultin XML解析并得到性能问题? – 2012-04-19 11:40:55
看看我的答案和链接。 – 2012-04-19 11:49:36