मैं अपने आईडी टैग के आधार पर कुछ लिंक हटाने की कोशिश कर रहा हूं, लेकिन लिंक की सामग्री छोड़ दें। उदाहरण के लिए मैं चालू करने के लिएPHP डोम तत्व छोड़ें सामग्री
Some text goes <a href="http://www.domain.tdl/" id="remove">here</a>
Some text goes here
को मैं नीचे का उपयोग कर की कोशिश की है चाहता हूँ।
$dom = new DOMDocument;
$dom->loadHtml(mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"));
$xp = new DOMXPath($dom);
foreach($xp->query('//a[contains(@id="remove")]') as $oldNode) {
$revised = strip_tags($oldNode);
}
$revised = mb_substr($dom->saveXML($xp->query('//body')->item(0)), 6, -7, "UTF-8");
echo $revised;
मोटे तौर पर here से लिया, लेकिन यह सिर्फ वापस थूक $html
की एक ही सामग्री।
कोई विचार यह है कि मैं इसे कैसे प्राप्त करूं?
आप यहां अपना दस्तावेज़ संशोधित नहीं कर रहे हैं, यही कारण है कि यह वही सामग्री थूकता है। उदाहरण आपने डीओएम ऑब्जेक्ट पर 'replaceChild' को कॉल किया है, और आप केवल वैरिएबल बना रहे हैं जिसे आपने बाद में 'saveXML' –
के आउटपुट के साथ ओवरराइट किया है अच्छा प्रश्न, +1। एक एकल XPath अभिव्यक्ति समाधान का मेरा उत्तर देखें जो वास्तव में वांछित नोड्स का चयन करता है। :) –