Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript xpath包含concat不起作用_Javascript_Xpath_Xquery - Fatal编程技术网

Javascript xpath包含concat不起作用

Javascript xpath包含concat不起作用,javascript,xpath,xquery,Javascript,Xpath,Xquery,这是xml文件(demo.xml):- 在这个代码的帮助下。。。它的工作很好 如果我在第一个文本框中输入dist\u map,并且 在第二个文本框中有一个属性值 根据操作员提供我需要的性能o/p… 但如果我的xml是这样的:- <products> <product_id value="1"> <tab_id value="351"> <tab_name value="test1"/>

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


在这个代码的帮助下。。。它的工作很好
如果我在第一个文本框中输入
dist\u map
,并且
在第二个文本框中有一个属性值
根据操作员提供我需要的性能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\u map
like
3,8,9
为此设置了什么xpath
如果我输入了它们的任何一个值,那么它的工作就是我的工作o/p


谢谢…

你能说出你的问题吗?这是一个骗局吗?@joewiz不,两者都不一样。因为在这个问题上,我已经解决了我以前的问题查询…@joewiz我正在使用这个xpath<代码>var xPath='/*[(local-name()='+elName+'')和@value'+ls+'+value+']'+'/../../@value'如果dist_map只有一个属性值,如
3
,则此操作很好,但如果有多个值,如
3,7,9
,则如何使用文本框检查特定值,我想用于此xpath。。。如果可能的话,请帮助我…@jacklanza使用逗号分隔的值使它们很难使用,并且很难进行小于/大于比较。这不是一个很好的设计,如果您想进行这种类型的查询,我不推荐使用它。我知道原始XML数据在单独的
元素中有单独的值。您是否可以返回到该数据格式?
<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>
var xPath = '//*[(text() = '+elName+') or @value '+ ls +' '+value+']'+'/../../@value';
  <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>