0

我已经浏览了整个网站,作为使用从 html 输入字段中获取的值搜索 XML 文件的各种方法,并设法做到了这一点,但是当它找到匹配项时,我所能做的就是显示一条消息“找到匹配!”。

我想做的是能够使用放入 html 输入字段的搜索字符串值来搜索 XML 文件,然后一旦找到匹配项,就可以提取该特定节点的其余信息 - 就像所有属性一样。

我的 XML 文件示例:

<dvdcatalogue>
<dvd year="1979" rating="18" director="ridley scott">Alien</dvd>
</dvdcatalogue>

电影的标题是“外星人”,所以这将是搜索字符串。

任何想法如何做到这一点?我猜这可能与加载到 javascript 数组中有关。只是为了让任何回答的人都知道到目前为止我所看到的所有示例都没有清楚地说明可以实现此目的的确切代码。

在此先感谢您的帮助!!

4

1 回答 1

0

您也可以使用 jQuery 来完成这项任务,就像我在这个小提琴中所做的一样(尽管 XPath 会是更正确的方法^^)

var xml = $("<dvdcatalogue>" +
               "<dvd year=\"1979\" rating=\"18\" director=\"ridley scott\">Alien</dvd>" +
               "<dvd year=\"1986\" rating=\"18\" director=\"ridley scott\">Aliens (aka. Alien 2)</dvd>" +
               "<dvd year=\"1984\" rating=\"18\" director=\"James Cameron\">Terminator</dvd>" +
               "</dvdcatalogue>"),
       search = "Alien",
       result = $("#result"),
       nodes;

       nodes = xml.find("dvd:contains('" + search + "')");

    if (nodes.length > 0) {
        nodes.each(function(i, e) {
            result.append("<li><b>" + e.firstChild.nodeValue + "</b> by " + e.getAttribute("director") + "</li>");
        });
    }
于 2012-05-03T06:49:09.013 回答