0

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

4

1 回答 1

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=现场试用

于 2013-03-12T02:31:25.697 回答