0

这是我的 xml 格式:-

<products>
  <product_id value="nokia">
    <tab_id value="3550">
      <individual_born_from value="1990-03-20"/>
    </tab_id>
  <products_id>
  <product_id value="samsung">
    <tab_id value="3650">
      <individual_born_from value="1990-03-20"/>
    </tab_id>
  <products_id>
</products>

我的代码:-

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
        var xml;
        $.get(
        "xml_converted.xml",
        null,
        function (data) {
            xml = data;
        },
        "xml"
    );
        function get_list() {
        var elName = $('#select').val();
            var xPath = '//product_id["' + elName + '" ' + 
            ' < translate(tab_id/individual_born_from/@value,"-","")]/@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);
        }
    </script>
</head>
<body>
    <input type="text" id="select">
    <input type="button" name="button" value="Search" onclick="get_list()">
    <div id="result">
    </div>
</body>
</html>

这是我的 xpath:-

var xPath = '//product_id["' + elName + '" ' + 
            ' < translate(tab_id/individual_born_from/@value,"-","")]/@value';

在这里我想输出类似的东西: -

如果用户在文本框中输入日期,
如果文本框值小于 xml individual_born_from="1990-03-20"
,则显示输出:- 1,2 b'coz of 1 是第一个<product_id>attr 值,2 是第二级<prodcut_id>attr 值,这两个日期都比用户在文本框中输入的要大...
如果可能使用 xpath 的 php 代码然后也帮助我添加标签 PHP 谢谢

4

2 回答 2

1

XPath 表达式

//individual_born_from/(number(translate(@value,'-',''))

在 XPath 2.0 中有效,但在 XPath 1.0 中无效,这将“/”之后可能出现的内容限制为一个简单的步骤。

于 2013-03-13T08:14:18.007 回答
0

请试试这个:

var xPath = '//product_id["' + elName + '" ' + 
            ' < translate(tab_id/individual_born_from/@value,"-","")]/@value';
于 2013-03-13T06:15:17.637 回答