【问题标题】:Using Javascript/JQuery to Filter XML results使用 Javascript/JQuery 过滤 XML 结果
【发布时间】:2015-04-20 00:42:47
【问题描述】:

好的,我正在努力解决这个问题......

我有一个页面,它提取了一堆 XML 数据,它工作正常。

然后我决定在这个页面和其他页面上添加一个搜索框,使这个页面只显示我的搜索结果。

我知道页面正在接收表单数据并且它被正确地存储在变量中。

我想使用这些变量来过滤我的 xml 文件的结果。

我目前拥有的是;

var x=xmlDoc.getElementsByTagName("ResidentialProperty");
mySearch = location.search.substr(1).split("&")
function getFromSearch() {
  var x = 0
  mySearch = location.search.substr(1).split("&")
  for (x=0;x<=mySearch.length;x++) {
    eval("document.forms.myNewForm."+mySearch[x])
  }
}
document.write(mySearch);
for (i=0;i<x.length;i++) { 
  var item = x[i];
  document.write("<div class='property'><div class='list_name'>");
  if(item !== undefined) {
      var itemElements = item.getElementsByTagName("StreetNumber");
      if(itemElements.length > 0) {
          if(itemElements[0].childNodes.length > 0) {
              document.write(x[i].getElementsByTagName("StreetNumber")[0].childNodes[0].nodeValue+' ');
          }
      }
  }
  if(item !== undefined) {
      var itemElements = item.getElementsByTagName("StreetDirPrefix");
      if(itemElements.length > 0) {
          if(itemElements[0].childNodes.length > 0) {
              document.write(x[i].getElementsByTagName("StreetDirPrefix")[0].childNodes[0].nodeValue+' ');
          }
      }
  }

等等

这一切正常,但每次我尝试过滤它时都会停止返回所有结果。

请帮忙。

【问题讨论】:

    标签: javascript jquery xml parsing


    【解决方案1】:

    可能值得使用像 jQuery 这样的库来解决这个问题。

    例如(在没有任何测试的情况下尝试代码)

    var xml = $(xmlDoc);
    var properties = xml.find('ResidentialProperty');
    
    mySearch = location.search.substr(1).split("&");
    
    var results = properties.filter(function() {
        return $(this).val().substr(0, mysearch.length) === mySearch;
    }); 
    
    console.log(results);
    

    参考

    http://www.jquerybyexample.net/2013/02/jquery-parse-json-xml-html.html

    https://api.jquery.com/find/

    http://api.jquery.com/filter/

    【讨论】:

    • 谢谢你。我正在努力让它在你的帮助下工作。到目前为止没有运气,但我会继续努力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多