XPath उन तत्वों को खोजने के लिए जिनके पास एक आईडी या वर्ग नहीं है


89

बिना आइडेंटिटी के मैं सभी tr एलिमेंट्स कैसे प्राप्त कर सकता हूं?

<tr id="name">...</tr>
<tr>...</tr>
<tr>...</tr>

धन्यवाद

जवाबों:


148

बहुत सीधा:

//tr[not(@id) and not(@class)]

यह आपको सभी trतत्वों की कमी idऔर classविशेषताओं दोनों को देगा । यदि आप चाहते हैं कि सभी trतत्वों में से किसी एक की कमी हो, तो orइसके बजाय उपयोग करें and:

//tr[not(@id) or not(@class)]

जब विशेषताओं और तत्वों का उपयोग इस तरह से किया जाता है, यदि विशेषता या तत्व का कोई मूल्य होता है तो इसे मान लिया जाता है जैसे कि यह सत्य है। यदि यह गायब है तो यह माना जाता है कि यह गलत है।


22

यदि आप एक ऐसे तत्व की तलाश कर रहे हैं जिसमें वर्ग है, aलेकिन वर्ग नहीं है b, तो आप निम्न कार्य कर सकते हैं।

//*[contains(@class, 'a') and not(contains(@class, 'b'))]

या यदि आप आंशिक मिलान नहीं करना चाहते हैं।

//*[contains(concat(' ', normalize-space(@class), ' '), ' some-class ') and 
not(contains(concat(' ', normalize-space(@class), ' '), ' another-class '))]


-4
if (elm.hasAttribute('id')) { 
//if id - implement here
    } else if (elm.hasAttribute('class')) { 
        //if class - implement here
    } else { 
        for (i = 1, sib = elm.previousSibling; sib; sib = sib.previousSibling) { 
            if (sib.localName == elm.localName)
                i++;
        }; 
        segs.unshift(elm.localName.toLowerCase() + '[' + i + ']'); 
    }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.