首页 > 解决方案 > 如何使用ajax和jquery从带有id的xm文件中获取数据

问题描述

我有一个简单的 XML 文件,现在我想使用 id 向用户显示带有描述的特定产品。

我的 XML 文件看起来像这样

在此处输入图像描述

这是我的js

   $.ajax({
        type: "GET",
        url: "xxxxx",
        cache: false,
        dataType: "xml",
        success: function(xml) {
            console.log(xml);
            var $xml = $(xml);
            item = $xml.find('item').has( "Id:contains('1215523')" );
            console.log(item);
        }
    });

这是我得到的结果

在此处输入图像描述

我需要做什么才能得到我需要的东西?任何帮助或建议将不胜感激

标签: javascriptjqueryajaxxml

解决方案


您只需要使用item g\\:id:contains('yourid')来获取有关特定xml节点的信息。

所以你的会看起来像:

  var $xml = $(xml);
  item = $xml.find('item g\\:id:contains("yourid")');

演示代码

$(function() {
  var xml = "<rss version='2.0' xmlns:g='http://base.google.com/ns/1.0'>";
  xml += $("#xmldata").html();
  xml += "</rss>";
  //parse xml
  var xmlDoc = $.parseXML(xml),
    $xml = $(xmlDoc);
  var result = "";
  //get item-><g:id>->1
  var pkSelector = "item g\\:id:contains('1')";
  console.log($xml.find(pkSelector).text());
  if ($xml.find(pkSelector).length > 0) {
    result = "<table border='1'>";
    result += "<tr><th>Id</th><th>Title</th><th>des</th></tr>";
    result += "<tr>";
    result += "<td>" + $xml.find(pkSelector).text() + "</td>";
    result += "<td>" + $xml.find(pkSelector).next("g\\:title").text() + "</td>";
    result += "<td>" + $xml.find(pkSelector).next("g\\:title").next("g\\:description").text() + "</td>";
    result += "</tr>";
    result += "</table>";
    $("#result").html(result);
  } else {
    $("#result").html("No item found  ");
  }


});
#xmldata {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="xmldata">
  <item>
    <g:id>
      1
    </g:id>
    <g:title>
      test
    </g:title>
    <g:description>
abcdjcdk
    </g:description>
  </item>
  <item>
    <g:id>
      2
    </g:id>
    <g:title>
      test2
    </g:title>
      <g:description>
    Sjdbvdvdvvvvvdsvsdv
    </g:description>
  </item>

</div>

<div id="result">
</div>


推荐阅读