2012-05-08 15 views
5

मैं "क्लास" विशेषता के साथ टैग "क्लास" विशेषता के साथ टैग प्राप्त करना चाहता हूं, लेकिन केवल वे टैग जिन्होंने विशेषता "आईडी" को परिभाषित नहीं किया है।सरल एचटीएमएल डोम: कुछ विशेषता के बिना टैग कैसे प्राप्त करें

मैंने कोशिश की निम्नलिखित (इस उत्तर के आधार पर), लेकिन काम नहीं किया:

$html->find('.someclass[id!=*]'); 

नोट:

मैं Simple HTML DOM class उपयोग कर रहा हूँ और बुनियादी प्रलेखन कि वे दे में , मुझे जो चाहिए वह मुझे नहीं मिला।

+0

CSS3 चयनकर्ताओं के लिए, http://code.google.com/p/phpquery/ – h0tw1r3

उत्तर

3

Simple HTML DOM classCSS3 pseudo classes का समर्थन नहीं करता है जो नकारात्मक विशेषता मिलान के लिए आवश्यक है।

बिना किसी परेशानी के सीमा के चारों ओर काम करना आसान है।

$nodes = array_filter($html->find('.something'), function($node){return empty($node->id);}); 
+0

मैंने अभी भी एक ही प्रश्न पोस्ट किया था लेकिन मेरे कोड में मुझे कक्षा के साथ सभी तत्व मिल रहे हैं जिनके पास एक विशिष्ट आईडी सेट नहीं है।क्या आपको यह दिखाना दिमाग होगा कि अगर मुझे आईडी की जांच करने की आवश्यकता है तो वापसी क्या होगी! = Some_id धन्यवाद – Anagio

+1

'$ nodes = array_filter ($ html-> ढूंढें ('कुछ'), फ़ंक्शन ($ नोड) {वापसी (! खाली ($ नोड-> आईडी) && $ node-> id! = 'some_id');}); ' – h0tw1r3

+0

धन्यवाद, मैंने देखा है कि आपने phpquery सुझाया है जो css3 चयनकर्ता स्वीकार करता है। क्या इस और सरल एचटीएमएल डोम के बीच कोई प्रदर्शन अंतर है? – Anagio

5

PHP Simple HTML DOM Parser Manual से, How to find HTML elements? के तहत, हम पढ़ सकते हैं: [! विशेषता]

तत्वों कि निर्दिष्ट विशेषता नहीं है मेल खाता है।

आपका कोड बन जाएगा:

$html->find('.someclass[!id]'); 

यह एक वर्ग someClass साथ तत्वों है कि एक id विशेषता नहीं है से मेल खाएगी।


मेरे मूल जवाब सिर्फ हम साधारण HTML डोम पार्सर जहां हम पढ़ सकते हैं उनके main page पर उन्हें समर्थन करने के लिए दावा है के बाद से jQuery के साथ होता है जैसे तत्वों का चयन के आधार पर किया गया था: पर

टैग ढूंढें jQuery के समान चयनकर्ताओं के साथ एक HTML पृष्ठ।

जो लोग अपने मूल जवाब से नाराज और टिप्पणियों में अपनी नाराज़गी व्यक्त किया गया मेरे विनम्र क्षमा!

+0

यहां शानदार काम करें! – Norse

+1

धन्यवाद, लेकिन वह ऑपरेटर सरल HTML DOM क्लास का उपयोग करके PHP कोड के लिए काम नहीं करता है (मेरे पोस्ट में इसका लिंक देखें)। – leticia

+0

हाँ, यही वह है जो मैं करता हूं, लेकिन मुझे यकीन नहीं है कि कोई अन्य समाधान नहीं है, धन्यवाद, आपके लिए +1 – leticia