Xpath में "नहीं" का उपयोग कैसे करें?


164

मैं कुछ इस तरह लिखना चाहता हूं:

//a[not contains(@id, 'xx')]

(सभी लिंक का अर्थ है कि 'आईडी' विशेषता में स्ट्रिंग 'xx' शामिल नहीं है)

मुझे सही सिंटैक्स नहीं मिल रहा है।

जवाबों:


241

नहीं () xpath में एक फ़ंक्शन है (एक ऑपरेटर के विपरीत), इसलिए

//a[not(contains(@id, 'xx'))]

क्या यह कहने का एक तरीका है कि सभी <p> टैग को पकड़ा जाए, लेकिन उनके अंदर <a> टैग नहीं? कुछ इस तरह की कल्पना करें <p> पाठ पाठ <a class="x"> पाठ </a> पाठ पाठ </ p>। मैं पी में सभी पाठ चाहते हैं, लेकिन पाठ में नहीं। क्या यह XPath के साथ संभव है? यह वास्तव में मेरा मामला नहीं है, यह उससे थोड़ा अधिक जटिल है लेकिन कमोबेश यही है।
अली


13

इनमें से किसी भी जवाब ने मेरे लिए अजगर के लिए काम नहीं किया। मैंने इससे हल निकाला

a[not(@id='XX')]

इसके अलावा, आप |ऑपरेटर द्वारा अपने xpath में उपयोग या स्थिति कर सकते हैं । जैसे कि

a[not(@id='XX')]|a[not(@class='YY')]

कभी-कभी हम ऐसा तत्व चाहते हैं जिसका कोई वर्ग न हो। तो आप पसंद कर सकते हैं

a[not(@class)]

1

boolean functionनीचे का उपयोग करें :

//a[(contains(@id, 'xx'))=false]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.