首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助使用jquery搜索XML文件并将结果存储在变量中供以后使用

需要帮助使用jquery搜索XML文件并将结果存储在变量中供以后使用
EN

Stack Overflow用户
提问于 2013-11-02 12:49:39
回答 2查看 3.9K关注 0票数 3

我一直在搜索一周中使用javascript/jquery的XML搜索方法的大部分时间--但大多数方法都用于输出到HTML或用XML显示整个记录数组,这正是我不想实现的。我正在寻找的函数是搜索"Sarah“这样的用户,然后将"department”和"code“存储在相应的变量中;(var department,var代码)。我有以下XML文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<phonebook>
<person>
    <first_name>Sarah</first_name>
    <department>Sales</department>
    <code>78</code>
</person>
<person>
    <first_name>Jean-Claude</first_name>
    <department>HR</department>
    <code>90</code>
</person>
</phonebook>

如何对记录超过400条的XML文件执行此操作?

谢谢你们。以下是面向未来的人们的最终工作解决方案:

代码语言:javascript
复制
function ReadXML() {
    try {
        var xmlPath = "../WebResources/new_fruits.xml";
        $.ajax({
            type: "GET",
            url: xmlPath,
            dataType: "xml",
            success: parseXML
        });
    } catch (e) {
        alert("Error while reading XML; Description – " + e.description);
    }
}

function parseXML(xml) {
var $person = $(xml).find('first_name').filter(function() {
    return $(this).text() == "Sarah";
}).closest('person');

var department = $('department', $person).text(); // = Sales
var code = $('code', $person).text(); // = 78    
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-02 12:57:18

可以使用filter,如下所示:

代码语言:javascript
复制
function parseXML(xml) {
    var $person = $(xml).find('first_name').filter(function() {
        return $(this).text() == "Sarah";
    }).closest('person');

    var department = $('department', $person).text(); // = Sales
    var code = $('code', $person).text(); // = 78
}

请注意,filter比使用:contains选择器快得多。当搜索4000个元素时,这种差异将非常明显。

票数 3
EN

Stack Overflow用户

发布于 2013-11-02 12:52:43

jQuery应该可以很好地处理XML。

代码语言:javascript
复制
var doc = $(your-xml-doc-string);
doc.find('person firstname').each(function() {
     var self=$(this);
     console.log(self.text());
});
// or
var sarah = doc.find('person firstname:contains("Sarah")');

包含选择器应该可以正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19742060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档