2013-04-18 14 views
9

यह मेरा 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> 

यह मेरा जावास्क्रिप्ट एचटीएमएल कोड है: -

<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> 

यहाँ मैं हूँ पाठ बॉक्स शहर का नाम में इनपुट करने की कोशिश करता है, तो उसका मिलान मेरी एक्सएमएल फाइल पर फिर मुझे वहां देश का नाम वापस कर दिया।
मुझे कोई त्रुटि नहीं मिल रही है लेकिन परिणाम नहीं मिल रहा है।
मुझे लगता है कि मेरी एक्सपैथ याचिका में समस्या मुझे इससे बाहर करने में मदद करती है।

+2

आप जाहिरा तौर पर के साथ अपने प्रश्न की जगह किसी ने जवाब देने का प्रयास करने के बाद कुछ अलग किया। क्यों न सिर्फ एक नया सवाल शुरू करें? – Barmar

+0

मैं पूरी तरह से @ बाड़मेर से सहमत हूं। समय सीमा से पहले दिन पूरी तरह से प्रश्न को पूरी तरह से बदलने की सिफारिश नहीं की जा रही है। अगर आपको कोई नई समस्या है, तो कृपया एक * नया * प्रश्न पूछें। –

उत्तर

7

उपयोग:

var xPath = '//*[@value = "' + city + '"]/../../@value'; 

एक बराबर अभिव्यक्ति है:

var xPath = '//*[*/*[@value = "' + city + ']]/@value'; 
+0

इसका काम ... :) ... –

+0

@ जैकपीएचपी, आपका स्वागत है –

+0

@DimitreNovatchev वे बराबर नहीं हैं, आईएमओ। मैं दूसरे संस्करण का उपयोग करना चाहूंगा क्योंकि इसे दो तरह के वृक्ष चलने की आवश्यकता नहीं है (रूट की ओर भी)। मुझे यकीन नहीं है कि क्या मुझे फिर से कोई दस्तावेज़ मिल सकता है, लेकिन कुछ ऐसा लगता है कि एक्सपैथ इंजन के पुराने कार्यान्वयन में इसके साथ समस्याएं थीं। अगर आपको वास्तव में एस्टेरिक्स का उपयोग करने का मतलब है तो भी मुझे पूरा यकीन नहीं है। उसमें मत जाना चाहिए, जैसे 'var xPath =' //.[./.[@value = "'+ city +']]/@ value ';'? तुलना करें [यह] (http: // www। mulberrytech.com/quickref/XSLT_1quickref-v2.pdf) –

1

जहाँ तक मुझे याद है के रूप में, सूचियों उस तरह काम नहीं करते ... वे चर किसी दिए गए मूल्य के साथ जुड़े, तो यह अधिक की तरह है:,

list($a, $b, $c) = [1, 2, 3];

वैसे भी क्यों नहीं करते आप phpredis पृष्ठ में 'सूची' अनुभाग पर एक नज़र डालें? यह Redis के लिए सिफारिश की पीएचपी ग्राहकों में से एक है, और इसके उदाहरण काफी स्पष्ट हैं

संबंधित मुद्दे