xpath包含concat不起作用

时间:2013-03-16 14:31:01

标签: javascript xpath xquery

这是xml文件(demo.xml): -

  <products>
      <product_id value="1">
        <tab_id value="351">
          <tab_name value="test1"/>
          <dist_map value="5"/>
        </tab_id>
      </product_id>
      <product_id value="2">
        <tab_id value="352">
          <tab_name value="test2"/>
          <dist_map value="3"/>
        </tab_id>
      </product_id>
   </products>

这是代码: -

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
        var xml;
        $.get(
        "demo.xml",
        null,
        function (data) {
            xml = data;
        },
        "xml"
    );

        function get_node(ls)
        {
         var elName = $('#select').val();
         var value = $('#value').val();
        var xPath = '//*[(text() = '+elName+') or @value '+ ls +' '+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="text" id="value">
    <input type="button" name="button" value="Less than" onclick="get_node('<')"></input>
    <input type="button" name="button" value="Grater than" onclick="get_node('>')"></input>
    <input type="button" name="button" value="Equal" onclick="get_node('=')"></input>
    <div id="result">
    </div>
</body>
</html>

我正在使用这个xpath: -

var xPath = '//*[(text() = '+elName+') or @value '+ ls +' '+value+']'+'/../../@value';


借助此代码......工作正常 如果我在第一个文本框中输入dist_map和 在第二个文本框中有attibute值
根据操作员给出的因果o / p,因为我需要...
但如果我的xml看起来像这样: -

  <products>
      <product_id value="1">
        <tab_id value="351">
          <tab_name value="test1"/>
          <dist_map value="5,8,9"/>
        </tab_id>
      </product_id>
      <product_id value="2">
        <tab_id value="352">
          <tab_name value="test2"/>
          <dist_map value="3,7,9"/>
        </tab_id>
      </product_id>
   </products>

在这个xml文件中 我有多个属性值dist_map,如3,8,9 为此设置了什么xpath 如果我输入了它们的任何一个值,那么它的工作就像我工作的那样......

感谢...

0 个答案:

没有答案