【问题标题】:How to get data from xm file with id using ajax and jquery如何使用ajax和jquery从带有id的xml文件中获取数据
【发布时间】:2020-05-20 13:39:05
【问题描述】:

我有一个简单的 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);
        }
    });

这是我得到的结果

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

【问题讨论】:

  • @JackFleeting 我提供了一个关于 ajax 请求的链接,现在检查一下
  • 你的预期输出是什么?
  • @JackFleeting 标题和描述

标签: javascript jquery ajax xml


【解决方案1】:

您只需要使用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>

【讨论】:

  • hej 我得到了你建议的 id 那么描述呢?
  • 只用$xml.find('item g\\:id:contains("yourid")').next("g\\:title").next("g\\:description").text()
  • 对不起,我忘了你在 id 之后还有一个节点尝试这个来获取描述->$xml.find('item g\\:id:contains("yourid")').next("g\\:gtin").next("g\\:title").next("g\\:description").text() 并获取标题使用->$xml.find('item g\\:id:contains("yourid")').next("g\\:gtin").next("g\\:title").text()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
相关资源
最近更新 更多