XPATH

2012-09-24 16 views
16

का उपयोग कर दो स्थितियों में मेरे पास टेक्स्टबॉक्स, 'txtSearch' है। मैं अंतिम नाम से लोगों को खोजने के लिए इसका उपयोग कर रहा हूं। यह मेरा कोड है।XPATH

var xmlTempResultSearch = xmlResidentListDisplay.selectNodes(
    "//PeopleList/Row[contains(translate(@LastName, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" + 
    txtSearch.value + "')]"); 

इस कोड txtSearch पाठ बॉक्स में पाठ इनपुट की तरह एक्सएमएल में सभी अंतिम नाम चयन करता है।

यह सभी अपरकेस अक्षरों को लोअरकेस अक्षरों में अनुवाद करता है।

तो अगर मैं 'डोरोसन' खोज रहा हूं, तो अगर मैं 'डोरो' टाइप करता हूं, तो यह सही व्यक्ति को पुनः प्राप्त करता है क्योंकि इसे 'डी' से 'डी' में अनुवाद किया जाता है। लेकिन जब मैं 'डोरो' टाइप करता हूं, तो यह सही व्यक्ति को पुनः प्राप्त नहीं करता है।

मुझे आश्चर्य है कि क्या मुझे XPATH में दो स्थितियां हो सकती हैं, और कैसे? मैं सभी अपरकेस को लोअरकेस में अनुवाद करने में सक्षम होना चाहता हूं, या सभी लोअरकेस को अपरकेस में अनुवाद करना चाहता हूं।

उत्तर

19

and और or हालत के अंदर अनुमति दी जाती है: [here]। या आप पाइप साइन का उपयोग कर एक XPath अभिव्यक्ति में एकाधिक पथ का भी उपयोग कर सकते हैं।

//PeopleList/Row[c1] | //PeopleList/Row[c2]

+1

.exist का उपयोग कर ("xpath"):: XQuery वाक्यविन्यास 'संघ' नहीं है

सीधे शब्दों में का उपयोग समर्थित। –

1

मैं आपको एक "या" यहाँ की जरूरत नहीं लगता। आपको केवल उनमें से एक का अनुवाद करने के बजाय, दोनों ऑपरेटरों को लोअर-केस में अनुवाद करने की आवश्यकता है।

1

जैसा कि माइकल के द्वारा उल्लेख किया गया है, or आवश्यक है। यह पता चलता है त्रुटि XQuery [dvEd.EnrichmentData.exist()] -

PeopleList/Row 
    [contains(translate(@LastName, 
        'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
        'abcdefghijklmnopqrstuvwxyz'), '" 
+ 
      translate(txtSearch.value, 
        'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
        'abcdefghijklmnopqrstuvwxyz')'" 

+ "')]"); 
सुश्री एसक्यूएल सर्वर के लिए