使用JavaScript从XML文件搜索和输出数据
search and output data from an XML file using JavaScript
我有一组数据,这些数据是地方的名称及其位置,它们保存在XML文件中,如下所示:
<row>
<cell>name</cell>
<cell>location</cell>
</row>
数据是从电子表格中提取出来的,然后保存为XML格式。现在,XML文件中有数千行,在第一个实例中,我们要查看5k+行。我是否可以使用JavaScript根据用户输入搜索这个XML文件,然后在HTML页面上显示这个输出?我还必须支持IE6(这是一个大问题)
我是一个关于XML的总新手,但可以做一点JavaScript和JQuery!有更简单的方法吗?我没有选择使用服务器端语言,也不能使用数据库(我知道很弱)。
如果你有一个XML字符串,那么你应该能够把它包装成一个jQuery对象,像这样:
var $myXML = $(myXMLString);
现在可以使用jQuery方法进行遍历和搜索。例如,在单元格中搜索'smith':
var $matches = $myXML.find("cell:contains('smith')"); //'smith' being your user input
您的XML似乎没有任何元数据,因此我们不能将搜索限制到特定字段。如果单元格有'fieldname',例如:
<row>
<cell fieldname='name'>name</cell>
<cell fieldname='location'>location</cell>
</row>
那么你可以这样写:
var $matches = $myXML.find("cell[fieldname='name']:contains(smith)");
查看下面的示例JSFiddle
编辑
我把这个做得更复杂一点:
var $myXML = $(myXMLString);
var $rowMatches = $myXML.filter(function(){
var $cellMatches = $(this).find("cell:contains('smith')");
return $cellMatches.length > 0;
});
alert($rowMatches.length);
(也是在这个JSFiddle)
现在在您的$rowMatches
中,您将拥有与查询匹配的行。filter
函数包含一个针对您的名字的过滤器。您可以尝试使用$.makeArray()
函数将其转换为数组,或者您可以使用.each()
函数对集合进行迭代。
无论哪种方式,您都应该能够访问该行中的其他字段。
相关文章:
- 以不同的顺序输出数据
- 如何在客户端输出数据?(express+monodb+jade)
- 使用AJAX获取JSON数据,然后通过HTML上的ElementID输出数据
- 使用 jQuery 遍历 JSON 数组并输出数据
- 在输出数据之前,等待循环完成每个数组项的 $.getJSON
- AJAX JQUERY 代码的哪一部分确定输出数据的占位符
- jQuery/Js 循环使用 Codeigniter MySQL 输出数据
- 角度可编辑滤波器输入和输出数据
- 使用javascript确定一个数组提交按钮,然后使用Ajax输出数据
- JS Json代码没有在视图源上输出数据
- Meteor Template不会在每个语句中输出数据
- 如何循环使用条件遍历JavaScript对象,然后输出数据
- 使用esc_js()保存的输出数据
- 获取从下拉菜单中选择的每个用户要更改的输出数据
- 从AJAX调用输出数据到HTML
- Rails不能以json格式输出数据
- 是否有可能从这些不以HTML源代码输出数据的网站中提取数据?
- 使用JavaScript从XML文件搜索和输出数据
- 从TaffyDB输出数据
- HTML客户端接收连续的服务器输出数据流