के साथ ढूंढें और बदलें, मेरे पास एक HTML है, जिसे परिवर्तित किया जाना चाहिए, कुछ टैग्स को अन्य टैग के साथ बदल दिया जाना चाहिए।संपूर्ण HTML नोड्स को नोकोगिरी
मुझे इन टैग के बारे में पता नहीं है, क्योंकि वे डीबी से आएंगे। तो, set_attribute
या name
नोकोगिरी के तरीके मेरे लिए उपयुक्त नहीं हैं।
मैं इस छद्म कोड में यह करने के लिए की जरूरत है, एक तरह से, जैसे:
def preprocess_content
doc = Nokogiri::HTML(self.content)
doc.css("div.to-replace").each do |div|
# "get_html_text" will obtain HTML from db. It can be anything, even another tags, tag groups etc.
div.replace self.get_html_text
end
self.content = doc.css("body").first.inner_html
end
मैंने पाया Nokogiri::XML::Node::replace
विधि। मुझे लगता है, यह सही दिशा है।
यह विधि कुछ node_or_tags
पैरामीटर की अपेक्षा करती है।
टेक्स्ट से नया नोड बनाने के लिए मुझे किस विधि का उपयोग करना चाहिए और इसके साथ वर्तमान को प्रतिस्थापित करना चाहिए?
यह मेरे लिए काम करता है शामिल नहीं है। मैं एक गलती जेन: "अनलिंक नोड्स पर कोई प्रासंगिक पार्सिंग नहीं"। यह लाइन के लिए इस तरह से शिकायत करता है, जहां "inner_html" प्रॉपर्टी सेट है – AntonAL
मैंने अभी परीक्षण किया है, और यह मेरे पर्यावरण में काम करता है। 'New_node.inner_html =' को 'new_node.content =' के साथ प्रतिस्थापित करने का प्रयास करें और त्रुटियों के लिए दोबारा जांच करें। यह होना चाहिए। –
धन्यवाद, मैंने इसे समझ लिया है। समस्या थी - डीओएम को अभी तक अनलिंक तत्व को संशोधित करना। हमें पहले प्रतिस्थापित करना होगा, और फिर संशोधित करना होगा। यह अच्छा है, लेकिन मुझे एक और भ्रमित समस्या का सामना करना पड़ा - किसी भी मार्कअप को प्रतिस्थापन के रूप में नहीं डाला जा सकता है। उदाहरण के लिए, जब मैं कहता हूं "new_node.inner_html ="