【问题标题】:jQuery and XML best way to parsejQuery 和 XML 的最佳解析方式
【发布时间】:2012-04-19 11:37:26
【问题描述】:

尝试解析来自 Web 服务 vinquery.com 的 XML 结果,通常值位于键名之间,例如你好,但是返回的 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&amp;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) 或其他方法获取say Item Key="Body Style" 的值的最有效方法是什么?

谢谢!

【问题讨论】:

  • 你的意思是你尝试了jQuery的自动bultin XML解析并且遇到了性能问题?

标签: jquery xml parsing


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用属性过滤器,尤其是 attributeEquals 过滤器:

    $("node[Key='Bob Style']"); 
    

    【讨论】:

      【解决方案3】:

      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&amp;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'));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-17
        • 1970-01-01
        • 1970-01-01
        • 2011-05-03
        • 1970-01-01
        • 2021-04-07
        • 1970-01-01
        • 2014-04-15
        相关资源
        最近更新 更多