我试图在XML文件中找到具有节点属性ex的多个节点。如position [validFromDate = 2015-01-05],日期在两个日期(30天窗口)的范围内。另外我需要一个逻辑操作数或者如同在"选择节点IF位置isPrimaryPosition属性= true或位置validFromDate(日期)在date1和date2之间。
非常清楚:isPrimaryPosition = true OR(date1> validFromDate< date2)
XML文件的相关部分如下所示:
<positions>
<position isPrimaryPosition="true" validFromDate="2015-06-20">
<position isPrimaryPosition="false" validFromDate="2015-01-19">
<position isPrimaryPosition="false" validFromDate="2015-06-20">
<position isPrimaryPosition="true" validFromDate="2015-01-19">
<position isPrimaryPosition="false" validFromDate="2015-01-19">
<position isPrimaryPosition="false" validFromDate="2015-06-20">
</positions>
我现在正在处理的代码是这样的,但是我无法弄清楚如何在日期之间进行选择逻辑或者这与isPrimaryPosition:
$ansettelse = $(this).find('position[isPrimaryPosition=true],position[validFromDate=2015-01-05]')
$ansettelse.each(function() {
$stillingskategori = $(this).parent().siblings('category').attr('id');
$ansattnummer = $(this).parent().siblings('employeeId').text();
$ansettelsesprosent = $(this).parent().siblings('employmentPercentage').text();
});
我希望得到一些帮助,指出我正确的方向。
答案 0 :(得分:0)
我将分两部分回答这个问题
非常明确:第1部分 [isPrimaryPosition = true] 第2部分 [或(日期1&gt; validFromDate&lt; date2)]
第1部分 - 测试: isPrimaryPosition = true
var value = $(xml).find("position[isPrimaryPosition=true]"); // <-- Get the value here
第2部分 - 测试: OR(date1&gt; validFromDate&lt; date2)
var date1 = '2015-01-19';
var date2 = '2015-01-20';
// Since we are doing OR, If the 1st isPrimaryPosition=true doesn't exist reset value
if(value.length == 0) // <-- Test for the value here
{
// Add a filter to the position then return test
value = $(xml).find('position').filter(function() {
var validFromDate = $(this).text();
// I think your test is wrong date1 > validFromDate < date2
// I think it should be date1 < validFromDate < date2 because you are doing range
// value between to date fields I believe
return date1 < validFromDate && validFromDate < date2;
});
}
value.each(function () {
// This is just to spit out a value
$(".main").append($(this).find("date").text() + "<br />");
});
<div class="main">
</div>
我添加了一个日期标记,只是为了查看xml的值
<?xml version="1.0" encoding="UTF-8"?>
<positions>
<position isPrimaryPosition="true" validFromDate="2015-06-20"><date>2015-06-20</date>
</position>
<position isPrimaryPosition="false" validFromDate="2015-01-19"><date>2015-01-19</date>
</position>
<position isPrimaryPosition="false" validFromDate="2015-06-20"><date>2015-06-20</date>
</position>
<position isPrimaryPosition="true" validFromDate="2015-01-19"><date>2015-01-19</date>
</position>
<position isPrimaryPosition="false" validFromDate="2015-01-19"><date>2015-01-19</date>
</position>
<position isPrimaryPosition="false" validFromDate="2015-06-20"><date>2015-06-20</date>
</position>
</positions>