Javascript / jQuery搜索xml的字符串然后运行一个函数

时间:2014-02-22 17:38:51

标签: javascript jquery ajax xml xml-parsing

如果在外部xml文件中找到字符串,我需要运行函数matchFound()

这是我到目前为止所做的:

function init(){
   $.ajax({
      type: "GET",
      url: "http://www.domain.com/feed.rss",
      dataType: "text",
      success: parseXml 
   });
}

function parseXml(xml){
  // look into the xml file
}

function matchFound(){
  alert('match found');
}

function matchNotFound(){
  alert('match NOT found');
}

但我不知道如何解析XML并搜索字符串。

xml中的搜索位置为:rss > channel > item > title,我只需要匹配该标记中的前10个字符。

如果找到匹配项,则运行功能matchFound()或如果未找到则运行功能matchNotFound()

非常感谢任何帮助。

C

1 个答案:

答案 0 :(得分:2)

首先,您需要将返回的文本视为XML,以便解释器可以正确解析此对象。

dataType: "xml",

现在在parseXml函数中,您需要将返回的结果包装为jQuery对象,然后迭代以获取所需的元素。

修改

function parseXml(xml){
    var string_to_find = "Hello World!";
    $(xml).find('title').each(function(){
        var str = $(this).text();
        if(str.indexOf(string_to_find) > -1){
            if(matchFound(str, string_to_find)){
                return false;   
            }
        }

    });
}
function matchFound(str, string_to_find){
    alert('Match found in string - '+ str +'\r\n While looking for the string- '+ string_to_find);
    return true;
}

function matchNotFound(){
    alert('No Match found!');   
}

here is a jsFiddle illustrating此功能。