使用JavaScript从XML文件中搜索和输出数据
我有一组数据,它们是保存在XML文件中的地名和位置,如下所示:使用JavaScript从XML文件中搜索和输出数据,javascript,jquery,html,xml,search,Javascript,Jquery,Html,Xml,Search,我有一组数据,它们是保存在XML文件中的地名和位置,如下所示: <row> <cell>name</cell> <cell>location</cell> </row> 名称 位置 数据从电子表格中提取,然后保存为XML格式。现在在XML文件中有数千行,在第一个例子中,我们看到的是5k+。我是否可以基于用户输入,使用JavaScript搜索这个XML文件,然后在HTML页面上显示这个输出?我还必须支持IE6(这是一个大
<row>
<cell>name</cell>
<cell>location</cell>
</row>
名称
位置
数据从电子表格中提取,然后保存为XML格式。现在在XML文件中有数千行,在第一个例子中,我们看到的是5k+。我是否可以基于用户输入,使用JavaScript搜索这个XML文件,然后在HTML页面上显示这个输出?我还必须支持IE6(这是一个大问题)
在XML方面我是个十足的noob,但我会做一些JavaScript和JQuery!有没有更简单的方法?我没有选择使用服务器端语言,也不能使用数据库(我知道很弱)
提前感谢。如果您将XML作为字符串,那么您应该能够将其包装到jQuery对象中,如下所示:
var $myXML = $(myXMLString);
现在可以使用jQuery方法进行遍历和搜索。例如,在单元格中搜索“smith”:
var $matches = $myXML.find("cell:contains('smith')"); //'smith' being your user input
您的XML似乎没有任何元数据,因此我们不能将搜索限制在特定字段。例如,如果您的单元格具有“字段名”:
<row>
<cell fieldname='name'>name</cell>
<cell fieldname='location'>location</cell>
</row>
参见上的示例
编辑
我已经让这更复杂了一点:
var $myXML = $(myXMLString);
var $rowMatches = $myXML.filter(function(){
var $cellMatches = $(this).find("cell:contains('smith')");
return $cellMatches.length > 0;
});
alert($rowMatches.length);
(另请参阅)
现在,在$rowMatches
中,您将获得与查询匹配的行。filter
函数包含您姓名的筛选器。您可以尝试使用$.makeArray()
函数将其转换为数组,也可以使用集合上的.each()
函数对集合进行迭代
无论哪种方式,您都应该能够访问行中的其他字段。好的,非常感谢。但是,如果我使用编辑器添加“字段名”或类似的内容,那么我就能够搜索字段了?然后我能根据用户输入返回这两个字段吗?我修改了上面的示例以满足您的要求(希望如此)。请参阅“编辑”真棒和真棒。非常感谢你。我要好好玩玩这个!
var $myXML = $(myXMLString);
var $rowMatches = $myXML.filter(function(){
var $cellMatches = $(this).find("cell:contains('smith')");
return $cellMatches.length > 0;
});
alert($rowMatches.length);