YouTip LogoYouTip

Met Nodemap Removenameditem

## XML DOM NamedNodeMap.removeNamedItem() Method The `removeNamedItem()` method removes a specified node (by name) from a `NamedNodeMap` object. In web development and XML DOM manipulation, this method is most commonly used to remove a specific attribute node from an element's attributes collection. --- ### Definition and Usage * **Purpose**: Removes a node specified by its name from the `NamedNodeMap`. * **Default Values**: If the removed attribute has a default value defined in the DTD (Document Type Definition), a new attribute node containing the default value, along with its namespace URI, local name, and prefix (if applicable), is automatically generated and inserted immediately. * **Return Value**: Returns the removed node as a `Node` object. If the specified node is not found, it throws a `DOMException` (specifically, a `NOT_FOUND_ERR`). --- ### Syntax ```javascript namedNodeMap.removeNamedItem(nodename) ``` #### Parameters | Parameter | Type | Description | | :--- | :--- | :--- | | `nodename` | *String* | **Required.** The name of the node (e.g., attribute name) you want to remove. | #### Return Value * **Type**: `Node` object * **Description**: The node that was removed from the map. --- ### Code Example The following example demonstrates how to load an XML document (`books.xml`), loop through all `` elements, and remove their `category` attributes using the `removeNamedItem()` method. #### The XML File (`books.xml`) ```xml Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K. Rowling 2005 29.99 ``` #### JavaScript Implementation ```javascript // Load the XML document var xmlDoc = loadXMLDoc("books.xml"); // Get all elements var books = xmlDoc.getElementsByTagName("book"); for (var i = 0; i < books.length; i++) { // Access the attributes NamedNodeMap of the current book element var attributesMap = books.attributes; // Remove the "category" attribute node var removedAttr = attributesMap.removeNamedItem("category"); console.log("Removed attribute: " + removedAttr.nodeName + " (Value: " + removedAttr.nodeValue + ")"); } ``` --- ### Considerations & Best Practices 1. **Error Handling**: If you attempt to remove an attribute that does not exist on the element, the browser will throw a `DOMException` with the code `NOT_FOUND_ERR`. To prevent runtime crashes, verify the attribute exists first: ```javascript var attrs = element.attributes; if (attrs.getNamedItem("category")) { attrs.removeNamedItem("category"); } ``` 2. **Alternative for HTML**: If you are working with standard HTML documents rather than arbitrary XML, it is generally simpler and more common to use the Element-level method `element.removeAttribute("attributeName")` instead of accessing the `attributes` map directly. 3. **Namespace Support**: If you are working with XML namespaces, use `removeNamedItemNS(namespaceURI, localName)` to target attributes defined within specific namespaces.
← Prop Document AsyncMet Nodemap Item β†’