2013-03-21 47 views
0

所有屬性值,這是我的xml文件: -得到使用XPath

<results value="1"> 
    <result value="111"> 
     <Country_Code value="IN"/> 
     <Country_Name value="India"/> 
     <Region_Name value="Gujarat"/> 
     <City value="Rajkot"/> 
     <loction lat="13.060422" lng="80.24958300000003"/> 
    </result> 
    <result value="222"> 
     <Country_Code value="KE"/> 
     <Country_Name value="Kenya"/> 
     <Region_Name value="Vihiga"/> 
     <City value="Kakamega"/> 
     <loction lat="0.1182473" lng="34.7334515999997"/> 
    </result> 
</results> 

這是我的代碼: -

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
    <script> 
     var xml; 
     $.get(
     "sea.xml", 
     null, 
     function (data) { 
      xml = data; 
     }, 
     "xml" 
    ); 

     function get_list(ls) { 
      var elName = $('#select').val(); 
      var value = $('#value').val(); 
      if(elName == "" || value == "") 
      { 
      } 
      else if (elName != "" || value != "") 
      { 
      var xPath = '//*[ @lat '+ ls +' "'+elName+'" and @lng '+ ls +' "'+value+'"]'+'/../City/@*'; 


      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); 
     } 
     else 
     {} 
     } 
    </script> 
</head> 
<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> 
</html> 

與此代碼的XPath返回屬性值Rajkot但我想改變在Xpath中獲取所有屬性

在xPath的幫助下,如果值匹配xml文件,只返回城市屬性值。
但我要像所有的屬性值: - IN,Inida,Gujarat,Rajkot,13.060422,80.24958300000003

回答

1

以下XPath:

//loction[@lat='13.060422' and @lng='80.24958300000003'][1]/preceding-sibling::City/@value 

輸出:

value="Rajkot" 

與以下XPath:

//loction[@lat='13.060422' and @lng='80.24958300000003'][1]/preceding-sibling::*/@* 

輸出:

value="IN" 
----------------------- 
value="India" 
----------------------- 
value="Gujarat" 
----------------------- 
value="Rajkot" 
+0

沒有人,你不明白我的要求。如果lat和lang值匹配,則返回相同級別的節點屬性值,這裏我正在編輯我的問題,請檢查... – 2013-03-21 09:48:50

+0

如果我們在文本框中輸入13.060422和80.24958300000003,則返回IN Gujarat Rajkot 13.060422 80.24958300000003此時此類型只返回一個屬性拉傑果德b'coz我的XPath年底成立/../City/@* – 2013-03-21 09:52:12

+0

是極大的利好就業親愛的,但任何想法時,XML文件中有沒有屬性比類型的XPath組XML像 \t' \t \t <國家代碼> IN \t \t <國家名稱>印度 \t \t Gujarat \t \t 拉傑科德 \t \t 13.060422 \t \t 80.24958300000003 \t \t \t \t KE \t \t 肯尼亞 \t \t Vihiga \t \t 卡卡梅加 \t \t 0.1182473 \t \t 34.7334515999997 \t ' – 2013-03-21 10:39:50