Translate

JavaScript method to remove child node

 

Create a JavaScript method that will take 2 parameters, first parameter will take complete XML as string and second will take XML node object which need to be removed from first parameter i.e. complete XML

Create a JavaScript method that will take 2 parameters, first parameter will take complete XML as string and second will take XML node object which need to be removed from first parameter i.e. complete XML

function removeXmlNode(xmlString, nodeToRemove) {
    try {
        // Parse the XML string into a DOM object
        const parser = new DOMParser();
        const xmlDoc = parser.parseFromString(xmlString, "text/xml");

        // Find the node in the XML document that matches the node to be removed
        const serializedNodeToRemove = new XMLSerializer().serializeToString(nodeToRemove);
        const allNodes = xmlDoc.getElementsByTagName("*"); // Get all elements

        for (let i = 0; i < allNodes.length; i++) {
            const currentSerializedNode = new XMLSerializer().serializeToString(allNodes[i]);

            // Compare the serialized strings of the nodes
            if (currentSerializedNode === serializedNodeToRemove) {
                allNodes[i].parentNode.removeChild(allNodes[i]);
                break;
            }
        }

        // Serialize the updated XML document back to a string
        const serializer = new XMLSerializer();
        return serializer.serializeToString(xmlDoc);
    } catch (error) {
        console.error("Error while removing XML node:", error);
        return null; // Return null to indicate failure
    }
}


Example of above method:

// Example usage
const xmlString = `
<root>
    <item id="1">First</item>
    <item id="2">Second</item>
</root>`;

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "text/xml");
const nodeToRemove = xmlDoc.querySelector("item[id='2']");

const updatedXml = removeXmlNode(xmlString, nodeToRemove);
console.log(updatedXml);

No comments:

Post a Comment

Popular Posts