【发布时间】:2015-03-05 11:46:00
【问题描述】:
我试图在 XML 文件中查找多个节点,这些节点具有节点属性 ex。像 position[validFromDate=2015-01-05] 并且日期在两个日期的范围内(30 天窗口)。此外,我需要有一个逻辑操作数 OR,如“选择节点 IF position isPrimaryPosition attribute = true OR position validFromDate (date) is between date1 and date2.
非常清楚:isPrimaryPosition=true OR (date1 > validFromDate
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();
});
我希望得到一些帮助,为我指明正确的方向。
【问题讨论】:
-
你如何从 xml 文件中获取节点?你在把它们放进去吗?你在使用 json 对象吗? xml数据是js端的字符串吗?
-
我正在使用 Ajax 调用来获取 XML
-
var $person = $(xml).find('person:has(ssn:contains('+ $('#fld_socialsecurity').val().replace(/\./g, "") +'))');然后 $person.each(function() {
-
我在日期之间的第二部分苦苦挣扎。另外,我不确定您是在寻找 [3] 之类的职位还是价值?
-
感谢 Demodave 的努力,我只是想让舒尔只包括日期在范围内的节点。价值观不重要,立场也不重要。
标签: jquery xml date date-range jquery-traversing