我有一组数据,这些地方名称及其位置保存在XML文件中,如下所示:
<row>
<cell>name</cell>
<cell>location</cell>
</row>
数据从电子表格中提取,然后保存为XML格式。现在在XML文件中有数千行,在第一个实例中我们正在查看5k +。我是否可以根据用户输入使用JavaScript搜索此XML文件,然后在HTML页面上显示此输出?我还必须支持IE6(这是一个大问题)
我是关于XML的总菜鸟,但可以做一些JavaScript和JQuery!有更简单的方法吗?我没有使用服务器端语言的选择,也不能使用数据库(我知道的很弱)。
提前致谢。
答案 0 :(得分:3)
如果您将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)");
上的示例
修改强>
我让它变得更复杂了:
var $myXML = $(myXMLString);
var $rowMatches = $myXML.filter(function(){
var $cellMatches = $(this).find("cell:contains('smith')");
return $cellMatches.length > 0;
});
alert($rowMatches.length);
(也在this JSFiddle)
现在,在您的$rowMatches
中,您将拥有与您的查询匹配的行。 filter
函数包含您名称的过滤器。您可以尝试使用$.makeArray()
函数将其转换为数组,也可以使用集合上的.each()
函数迭代集合。
无论哪种方式,您都应该能够访问该行中的其他字段。