2010-12-15 16 views
7

मुझे PHP के DOMDocument में कुछ h3 संदर्भ प्राप्त हुए हैं।क्या मैं PHP के DOMDocument के साथ भाई बहन प्राप्त कर सकता हूं?

$dom = new DOMDocument(); 

$dom->loadHtml($content); 

$h3s = $dom->getElementsByTagName('h3'); 

foreach($h3s as $h3) { 

    var_dump($h3->nodeValue); 

} 

मैं h3 रों के बाद अगले तत्व प्राप्त करने के लिए की जरूरत है। इस मामले में, यह अगले h3 या दस्तावेज़ के अंत तक सभी तत्व होंगे।

यह नियमित अभिव्यक्ति के साथ आसानी से काम करता है, लेकिन मैं HTML का विश्लेषण करने के लिए यहां एक का उपयोग नहीं करना चाहता हूं।

संदर्भ के लिए, नियमित अभिव्यक्ति है कि ...

preg_match_all('/<h3>([^<]+)<\/h3>(.*?)(<h3|$)/', $content, $matches); 

(कौन सा नाजुक है, इसलिए उचित पार्स के लिए इच्छा)।

तो मैं उपरोक्त नियमित अभिव्यक्ति से $matches में डेटा की अपेक्षा करने वाले डेटा को DOMDOcument का उपयोग कैसे करूं?

मैंने documentation की जांच की, लेकिन जावास्क्रिप्ट की nextSibling संपत्ति के बराबर नहीं मिला।

उत्तर

14

$h3->nextSibling और $h3->previousSibling वह है जो आप खोज रहे हैं।

getElementsByTagNameDOMNodeList देता है, जिसमें DOMNode तत्व होते हैं जब आप इसे पुन: सक्रिय करते हैं।

http://www.php.net/manual/en/class.domnode.php

+2

+1 यह क्या वर्ग किसी वर्ग पीएचपी के मैनुअल में फैली हुई है की जाँच करने के लिए महत्वपूर्ण है। – netcoder

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