我需要一种方法来搜索XML String并返回一个包含"记录"的数组。符合多个搜索条件的元素。
结构如下:
<record>
<project_name>Deploy Document Management</project_name>
<project_phase>Design</porject_phase>
<status>Not Started</status>
<priority>Medium</priority>
</record>
<record>
<project_name>Do Something Else</project_name>
<project_phase>Design</porject_phase>
<status>Not Started</status>
<priority>Medium</priority>
</record>
如果我想返回一组&#34;记录&#34;其中status =&#34;未开始&#34;和priority =&#34; Medium&#34; ....我将如何使用javascript或JQuery?
要清楚,我需要符合条件的每条记录的整个记录。
提前致谢。
答案 0 :(得分:1)
一个良好的开端是解析XML,例如使用jQuery.parseXML()
然后,您可以像往常一样
访问返回文档的DOM示例:
var xml = '<xml><record><project_name>Deploy Document Management</project_name><project_phase>Design</project_phase><status>Not Started</status><priority>Medium</priority></record><record><project_name>Do Something Else</project_name><project_phase>Design</project_phase><status>Not Started</status><priority>Low</priority></record></xml>'
var xmlDoc = $.parseXML(xml)
var $xml = $(xmlDoc)
var $records = $xml.find("record").filter(function() {
return $(this).find("status").text() == "Not Started" &&
$(this).find("priority").text() == "Medium"
});
// $records already holds all Elements as an Array, but you cold get the texts like this:
var records = []
$records.each(function() {
// do your thing
records.push($(this).text())
})
document.write(JSON.stringify(records))
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
请注意,您的原始XML project_phase