这是我的xml: -
<results>
<result>
<Country_Code>IN</Country_Code>
<Country_Name>India</Country_Name>
<Region_Name>Gujarat</Region_Name>
<City>Rajkot</City>
<lat>13.060422</lat>
<lng>80.24958300000003</lng>
</result>
<result>
<Country_Code>KE</Country_Code>
<Country_Name>Kenya</Country_Name>
<Region_Name>Vihiga</Region_Name>
<City>Kakamega</City>
<lat>0.1182473</lat>
<lng>34.7334515999997</lng>
</result>
</results>
这是脚本: -
<script>
var xml;
$.get(
"sea.xml",
null,
function (data) {
xml = data;
},
"xml"
);
function get_list(ls) {
var elName = $('#select').val();
var value = $('#value').val();
var xPath = '//lat[@value '+ ls +' "'+elName+'"]'and var xPathh='//lng[@value '+ ls +' '+value+']'+'/../City/@value';
var xPath = '//[lat = ('+ elName+') and lng = ('+ value +')]'+'/result';
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>
这是html代码: -
<body>
<input type="text" id="select">
<input type="text" id="value">
<input type="button" name="button" value="Search" onclick="get_list('=')">
<div id="result">
</div>
</body>
我有两个文本框: -
在第一个文本框中输入纬度值13.060422
(在我的xml文件中)
在第二个文本框中输入经度值80.24958300000003
(在我的xml文件中)
然后两者都匹配我的xml元素值返回所有兄弟值,如
IN India Gujarat Rajkot 13.060422 80.24958300000003
感谢
答案 0 :(得分:2)
当你使用jquery试试这个
<强> DEMO 强>
var xml = "<results><result><Country_Code>IN</Country_Code><Country_Name>India</Country_Name><Region_Name>Gujarat</Region_Name><City>Rajkot</City><lat>13.060422</lat><lng>80.24958300000003</lng></result><result><Country_Code>KE</Country_Code><Country_Name>Kenya</Country_Name><Region_Name>Vihiga</Region_Name><City>Kakamega</City><lat>0.1182473</lat><lng>34.7334515999997</lng></result></results>";
xmlDoc = $.parseXML( xml );
$xml = $( xmlDoc );
function get_list(ls){
$lat = $("#select").val();
$lng = $("#value").val();
$title = $xml.find( "lat:contains('"+$lat+"')" ).closest('result');
$t = $title.find("lng:contains('"+$lng+"')").closest('result');
$str = $t.contents().map(function(){
return $(this).contents().eq(0).text();
}).get().join(' ');
$("#result").text($str);
}