我一直在搜索一周中使用javascript/jquery的XML搜索方法的大部分时间--但大多数方法都用于输出到HTML或用XML显示整个记录数组,这正是我不想实现的。我正在寻找的函数是搜索"Sarah“这样的用户,然后将"department”和"code“存储在相应的变量中;(var department,var代码)。我有以下XML文件:
<?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文件执行此操作?
谢谢你们。以下是面向未来的人们的最终工作解决方案:
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
}发布于 2013-11-02 12:57:18
可以使用filter,如下所示:
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个元素时,这种差异将非常明显。
发布于 2013-11-02 12:52:43
jQuery应该可以很好地处理XML。
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")');包含选择器应该可以正常工作。
https://stackoverflow.com/questions/19742060
复制相似问题