使用 JavaScript 从 XML 文件搜索并输出数据

2023-12-20

我有一组数据,它们是保存在 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 似乎没有任何元数据,因此我们无法将搜索限制到特定字段。例如,如果您的单元格有“字段名称”:

<row>
<cell fieldname='name'>name</cell>
<cell fieldname='location'>location</cell>
</row>

那么你可以使用这个:

var $matches = $myXML.find("cell[fieldname='name']:contains(smith)");

请参阅示例这个 JSFiddle http://jsfiddle.net/JMeYu/

EDIT

我把它做得更复杂一点:

var $myXML = $(myXMLString);

var $rowMatches = $myXML.filter(function(){
    var $cellMatches = $(this).find("cell:contains('smith')");
    return $cellMatches.length > 0; 
});

alert($rowMatches.length);

(也在这个 JSFiddle http://jsfiddle.net/JMeYu/1/)

现在在你的$rowMatches您将获得与您的查询匹配的行。这filter函数包含您的姓名过滤器。您可以尝试使用以下命令将其转换为数组$.makeArray()函数,或者您可以使用迭代集合.each()集合上的函数。

无论哪种方式,您都应该能够访问该行中的其他字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaScript 从 XML 文件搜索并输出数据 的相关文章

随机推荐