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
Xml 如果元素属性值匹配,则获取图像属性值_Xml_Xpath - Fatal编程技术网

Xml 如果元素属性值匹配,则获取图像属性值

Xml 如果元素属性值匹配,则获取图像属性值,xml,xpath,Xml,Xpath,我正在尝试获取元素图像属性。 从该xml文件:- 这是完整的代码:- <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> var comma=''; var node=''; var result=''; var out

我正在尝试获取元素图像属性。
从该xml文件:-

这是完整的代码:-

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
    var comma='';
    var node='';
    var result='';
    var output;

        var xml;
        $.get(
        "product.xml",
        null,
        function (data) {
            xml = data;
        },
        "xml"
    );
        function get_list() {
            var value = "4909,4902,4905";
            var array_top = value.split(',');
            for(var i=0;i<array_top.length;i++)
            {
                var xPath = '//*[local-name() = "dist_region" and ' +
                                        ' contains(concat(@value, ","), "' + array_top[i] + ',")]' + 
                                        '//Product_id[/image]/@value';
                                        alert(array_top[i]);
                    var iterator = xml.evaluate(xPath, xml.documentElement, null,
                            XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
                            var thisNode = iterator.iterateNext();
                            while (thisNode) {
                    node = thisNode.textContent;
                    thisNode = iterator.iterateNext();
                                result+= comma+node;
                                comma=',';

                            }
                            }
            output = result;
            alert(output);
        }
    </script>
</head>
<body>
    <input type="button" name="button" value="Search" onclick="get_list()">
    <div id="result">
    </div>
</body>
</html>

变量逗号=“”;
var节点=“”;
var结果=“”;
var输出;
var-xml;
美元(
“product.xml”,
无效的
功能(数据){
xml=数据;
},
“xml”
);
函数get_list(){
var value=“490949024905”;
var数组_top=value.split(',');

对于(var i=0;i您编写的XPATH
//Product\u id[/image]/@value
是错误的,请使用//Product\u id/tab\u id/image/@value来获取
女性.jpg和男性.jpg

您编写的XPATH
//Product\u id[/image]/@value
是错误的使用//Product\u id/tab\u id/image/@value从第X个角度获取
female.jpg和male.jpg

似乎就是您想要的:

'//product_id [*/dist_region[contains(concat(@value, ","), $array_top )]]/tab_id/image/@value'
在javasrcipt变量中应该是这样的:

'//product_id [*/dist_region[contains(concat(@value, ","), '
 + array_top[i] + 
')]]/tab_id/image/@value'
我仍然不知道为什么需要contains()。 还可以尝试:

'//product_id [*/dist_region[@value = $array_top ]]/tab_id/image/@value'

从第X个角度来看,这似乎是您所寻找的:

'//product_id [*/dist_region[contains(concat(@value, ","), $array_top )]]/tab_id/image/@value'
在javasrcipt变量中应该是这样的:

'//product_id [*/dist_region[contains(concat(@value, ","), '
 + array_top[i] + 
')]]/tab_id/image/@value'
我仍然不知道为什么需要contains()。 还可以尝试:

'//product_id [*/dist_region[@value = $array_top ]]/tab_id/image/@value'

不确定我是否完全理解了这个问题,但根据您的代码,您要查找的值是:“490949024905”,这是否意味着它应该返回female.jpg,female.jpg,female.jpg

您可以使用此xpath查找dist_区域的同级映像文件(只需将“4909”替换为其他数字:

//dist_region[@value='4909']/following-sibling::image

不确定我是否完全理解了这个问题,但根据您的代码,您要查找的值是:“490949024905”,这是否意味着它应该返回female.jpg,female.jpg,female.jpg

您可以使用此xpath查找dist_区域的同级映像文件(只需将“4909”替换为其他数字:

//dist_region[@value='4909']/following-sibling::image

我建议您在构建xpath之后打印出来。这样一来,它所做的事情就更清楚了。请注意xpath是区分大小写的;您有一个
product\u id
,而不是
。//product\u id[/image]/@value';
@peter.murray.rust我想
female.jpg,male.jpg
我建议您在构建xpath之后打印出它。这样做会更清楚它在做什么。请注意xpath是区分大小写的;您有一个
product\u id
,而不是
//product\u id[/image]/@value';
@peter.murray.rust我想
女性.jpg,男性.jpg