【问题标题】:Parse tags in XML在 XML 中解析标签
【发布时间】:2016-02-12 03:21:08
【问题描述】:

需要解析 XML 并获取特定标签的值

我们只需要显示放置正确单词的标签 - “sports”和“secure”,它们出现在 XML 下方的标签 <str name="word">WORD</str>

XML

<response>
    <lst name = "responseHeader">
        <int name status>0</int>
        <int name QTime>3</int>
    </lst>
    <result name="response",numFound="0",start="0"/>
    <lst name="spellcheck">
      <lst name="suggestions">
        <lst name="sporsts">
          <int name="numFound">1</int>
          <int name="startOffset">0</int>
          <int name="endOffset">5</int>
          <int name="origFreq">0</int>
          <arr name="suggestion">
            <lst>
              <str name="word">sports</str>
              <int name="freq">1</int>
            </lst>
          </arr>
        </lst>
        <lst name="secuer">
          <int name="numFound">1</int>
          <int name="startOffset">6</int>
          <int name="endOffset">17</int>
          <int name="origFreq">0</int>
          <arr name="suggestion">
            <lst>
              <str name="word">secure</str>
              <int name="freq">1</int>
            </lst>
          </arr>
        </lst>
      </lst>
      <bool name="correctlySpelled">false</bool>
    </lst>
</response>

目前,使用 ajax 通过调用 ajax 来获取数据,如下所述: 在 ajax 调用中:

$.ajax({
   type: "GET",
   url: solrurl,
   dataType: "xml",
   cache: false,
   success: function(data) {
        console.log(data);
         },      
     error : function(data)
     { 
          alert(Contact the Solr Admin);
     }
});

尝试使用 response.spellcheck.suggestions[0],但它的抛出错误 - 也尝试通过放置其他参数,但它不起作用!

任何人都可以建议或建议将运动和安全这两个词放在一个数组中。

【问题讨论】:

  • 函数成功后,可以使用 $(this).find('Str').text() 并将其存储到某个 var 中。它应该在 标签之间获取数据。
  • @sagarthapa 它空了 - 我试过 $(this).find('Str').text() , $(this).find('str').text() , $ (this).find('word').text() - 没用!!
  • hmm...好吧,现在尝试将成功:函数(数据)更改为成功:函数(xml)

标签: javascript ajax xml solr xml-parsing


【解决方案1】:

我已经更新了你的代码并检查了它,它工作正常。

JQUERY

$(document).ready(function () {
    var Values = new Array();
    $.get("chckvar.php",{},function(xml){
        $("str",xml).each(function(i){
            Values.push($(this).text());
        });
        console.log(Values)
    });
});

在浏览器控制台窗口中,您可以看到输出为

["sports", "secure"]

我希望这就是你要找的。​​p>

【讨论】:

  • @Debaditya - 上面提供的解决方案对您有帮助吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 2010-12-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
相关资源
最近更新 更多