我的xml文件: -
<root>
<name id="1">
<region value="001">
<date value="1989-03-09"/>
</region>
<name id="2">
<region value="002">
<date value="1989-03-09"/>
</region>
</name>
</root>
这是我的代码: - 我试试: -
function get_list() {
var elName = $('#select').val();
var xPath = '///date[xs:date(./@value,"-","") > xs:date("'+ elName +'")]/../@value';
var iterator = xml.evaluate(xPath, xml.documentElement, null,
XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
var thisNode = iterator.iterateNext();
var str = '';
while (thisNode) {
if (str) {
str += ', ';
}
str += thisNode.textContent;
thisNode = iterator.iterateNext();
}
$("#result").text(str);
}
我有一个带id = select
的文本框
在这里我想得到<date value="1989-03-10"/>
小于文本框日期然后返回第一个元素属性值...
例如: -
input type="text" 1989-02-05 < 1989-03-10 is true then
o / p是: - 1, 2
使用xpath和html对我有好处,其他也是
感谢
答案 0 :(得分:0)
以下查询应该有效:
let $ref-date := xs:date("1989-03-10")
let $data := <root>
<name id="1">
<region value="001">
<date value="1989-03-09"/>
</region>
</name>
<name id="2">
<region value="002">
<date value="1989-03-11"/>
</region>
</name>
</root>
return $data/name[region/date/xs:date(@value) lt $ref-date]
您可以在http://www.zorba-xquery.com/html/demo#r0KwHwjp1weVwefDUn1Z6roVD3A=
上试一试