使用文本框进行xpath日期比较

时间:2013-03-11 13:27:35

标签: html xpath xquery

我的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对我有好处,其他也是
感谢

1 个答案:

答案 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=

上试一试