मेरे पास ऐसा संरचना है जो इस तरह दिखता है
& lt; div class = "table" & gt; & Lt; div & gt; & Lt; p & gt; नाम 1 & lt; / p & gt; & Lt; p & gt; शीर्षक 1 & lt; / p & gt; & Lt; / div & gt; & Lt; div & gt; & Lt; p & gt; नाम 2 & lt; / p & gt; & Lt; p & gt; शीर्षक 2 & lt; / p & gt; & Lt; / div & gt; & Lt; div & gt; & Lt; p & gt; नाम 3 & lt; / p & gt; & Lt; p & gt; शीर्षक 3 & lt; / p & gt; & Lt; / div & gt; & Lt; / div & gt; और यह कुछ सौ बार जारी है। Php में मैं क्या लिख सकता हूँ (class = "table" & gt; div)) और प्रत्येक 'div' में केवल 'p' के लिए एक क्लास जोड़ूँ?
$ str = '& lt; div class = "table" & gt; & Lt; div & gt; & Lt; p वर्ग = "पहले" & gt; नाम 1 & lt; / p & gt; & Lt; p & gt; शीर्षक 1 & lt; / p & gt; & Lt; / div & gt; & Lt; div & gt; & Lt; p & gt; नाम 2 & lt; / p & gt; & Lt; p & gt; शीर्षक 2 & lt; / p & gt; & Lt; / div & gt; & Lt; div & gt; & Lt; p & gt; नाम 3 & lt; / p & gt; & Lt; p & gt; शीर्षक 3 & lt; / p & gt; & Lt; / div & gt; & Lt; / div & gt; '; $ Dom = नया डोम दस्तावेज़; $ Dom- & gt; loadHTML ($ str); $ Xpath = नया DOMXPath ($ dom); $ नोड = $ xpath- & gt; क्वेरी ('// div [@ class = "तालिका"] / div / p [position () = 1]'); $ AddClass = 'पहले'; विदेशी मुद्रा ($ नोड $ नोड के रूप में) {यदि ($ नोड- & gt; है विशेषता ('वर्ग')) {$ classes = preg_split ('/ \ s + /', $ node- & gt; getAttribute ('class')); यदि (in_array ($ addClass, $ classes)) {continue; }} और {$ classes = array (); } $ वर्ग [] = $ जोड़ क्लास; $ नोड- & gt; सेट विशेषता ('वर्ग', implode ('', $ classes)); } Var_dump ($ dom- & gt; सहेजें HTML ()); पहले दो बार नहीं जोड़ने के लिए अपडेट किया गया है:) आउटपुट स्ट्रिंग (340) "& lt ;; DOCTYPE html PUBLIC "- // W3C // DTD एचटीएमएल 4.0 ट्रांसक्रिप्शन // एन" "http://www.w3.org/TR/REC-html40/loose.dtd"> & lt; html & gt; & lt; body & gt ; & Lt; div वर्ग = "टेबल" & gt; & lt; div & gt; & lt; p वर्ग = "प्रथम" & gt; नाम 1 & lt; / p & gt; & lt; p & gt; शीर्षक 1 & lt; / p & gt; & lt; / div & gt; & lt; div & gt; & Lt; p वर्ग = "प्रथम" & gt; नाम 2 & lt; / p & gt; & lt; p & gt; शीर्षक 2 & lt; / p & gt; & lt; / div & gt; & lt; div & gt; & lt; p वर्ग = "प्रथम" & gt; नाम 3 & lt; / p & gt ; & Lt; p & gt; शीर्षक 3 & lt; / p & gt; & lt; / div & gt; & lt; / div & gt; & lt; / body & gt; & lt; / html & gt; " आपने शायद DOMDocument मददगार आपके लिए HTML wrapper टैग ( html , body , आदि) जोड़ता है। आप शरीर तत्व की आंतरिक एचटीएमएल इतनी ही ... <पूर्व> $ आउटपुट = ''; विदेशी मुद्रा ($ dom- & gt; getElementsByTagName ('बॉडी') - & gt; आइटम (0) - & gt; चाइल्ड नोड्स $ नोड के रूप में) {$ आउटपुट। = $ Dom- & gt; सेव एक्सएमएल ($ नोड); } आउटपुट & lt; div class = "table" & gt; & Lt; div & gt; & Lt; p वर्ग = "पहले" & gt; नाम 1 & lt; / p & gt; & Lt; p & gt; शीर्षक 1 & lt; / p & gt; & Lt; / div & gt; & Lt; div & gt; & Lt; p वर्ग = "पहले" & gt; नाम 2 & lt; / p & gt; & Lt; p & gt; शीर्षक 2 & lt; / p & gt; & Lt; / div & gt; & Lt; div & gt; & Lt; p वर्ग = "पहले" & gt; नाम 3 & lt; / p & gt; & Lt; p & gt; शीर्षक 3 & lt; / p & gt; & Lt; / div & gt; & Lt; / div & gt;
Comments
Post a Comment