xml - Remove a node using xpath -
मेरे पास एक XML संरचना है, इस प्रकार है:
& lt; a & gt; & Lt; p & gt; & LT; foo & gt; अशक्त & lt; / foo & gt; & Lt; / p & gt; & Lt; p & gt; & LT; foo & gt; एबीसी & lt; / foo & gt; & Lt; / p & gt; & Lt; p & gt; & LT; foo & gt; EFG & lt; / foo & gt; & Lt; / p & gt; & Lt; / a & gt;
मैं नोड्स को अपडेट करने के लिए org.w3c.dom.Document
का उपयोग कर रहा हूं। जब & lt; foo & gt;
में कोई मान है null
, मैं निकालना चाहता हूं
& lt; b & gt; & LT; foo & gt; अशक्त & lt; / foo & gt; & Lt; / p & gt;
क्या यह संभव है? मुझे पता है कि मैं removeChild (childElement)
को कॉल कर सकता हूं, लेकिन निश्चित नहीं कि मैं कैसे ऊपर विशिष्ट नेस्टेड तत्व को निकालने के लिए निर्दिष्ट कर सकता हूं।
अपडेट: नीचे दिए गए उत्तर, मैंने कोशिश की:
स्ट्रिंग क्वेरी = "/ a / b [foo [text () = 'null']]"; वस्तु परिणाम = (xpath.compile (newQuery)) मूल्यांकन करें (डॉक्टर, नोएडी); नोडलिस्ट नोड्स = (नोडलिस्ट) परिणाम; के लिए (int i = 0; i & lt; nodes.getLength (); i ++) {नोड नोड = नोड्स। आईटम (i); doc.removeChild (नोड); }
मुझे NOT_FOUND_ERR मिलता है: किसी संदर्भ में एक नोड का संदर्भ देने का प्रयास किया जाता है जहां यह मौजूद नहीं है
।
doc.removeChild (नोड);
काम नहीं करेगा क्योंकि नोड जिसे आप निकालने का प्रयास कर रहे हैं वह दस्तावेज़ नोड का बच्चा नहीं है, यह दस्तावेज़ तत्व का बच्चा है (< कोड> ए कोड>), जो स्वयं दस्तावेज़ रूट नोड का बच्चा है। आपको सही पैरेंट नोड पर removeChild
कॉल करने की आवश्यकता है:
नोड .getParentNode ()। RemoveChild (नोड);
Comments
Post a Comment