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