2

这是我的 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

谢谢

4

1 回答 1

2

当你使用 jquery 试试这个

演示

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);
}
于 2013-03-21T10:22:31.437 回答