这是我的xml文档: -
<root>
<child_1 entity_id = "1" value="india">
<child_2 entity_id = "2" value="gujarat">
<child_3 entity_id = "3" value="Ahemdabad"/>
<child_4 entity_id = "4" value="Surat"/>
<child_5 entity_id = "5" value="Rajkot"/>
</child_2>
</child_1>
</root>
这是我的javascript html代码: -
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
var xml;
var ind_sex;
$.get(
"code.xml",
null,
function (data) {
xml = data;
},
"xml"
);
function get_list() {
var city = $('#name').val();
alert(city);
var xPath = '//*[@value = "city"]' +
'/../../@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="name"></input>
<input type="button" name="button" value="Search" onclick="get_list()">
<div id="result">
</div>
</body>
</html>
这里我尝试输入文本框城市名称,如果它在我的xml文件上匹配,那么它返回我的国家名称。
我没有得到任何错误但没有得到结果。
我认为我的xPath请求中的问题可以帮助我解决这个问题。
答案 0 :(得分:7)
使用强>:
var xPath = '//*[@value = "' + city + '"]/../../@value';
等效表达:
var xPath = '//*[*/*[@value = "' + city + ']]/@value';
答案 1 :(得分:1)
据我记忆,列表不能像那样工作......它们是与给定值相关的变量,所以它更像是:
list($a, $b, $c) = [1, 2, 3];
无论如何,您为什么不查看phpredis页面中的“列表”部分?它是Redis推荐的PHP客户端之一,其示例非常清晰