In the examples below, we will use the XML file books.xml, and the JavaScript function loadXMLDoc().
Remove an element
This example uses removeChild() to remove the last <book> element from the loaded XML.
Remove text from a text node
This example uses deleteData() to remove text from a text node in the loaded XML.
Remove an attribute
This example uses removeAttribute() to remove all "category" attributes from the loaded XML.
Use removeAttributeNode()
This example uses removeAttributeNode() to remove all "category" attributes from the loaded XML.
The removeChild() method can be used to remove a specified node.
The following code fragment will remove the last <book> element from the loaded xml:
//check if last child node is an element node function get_lastchild(n) { var x=n.lastChild; while (x.nodeType!=1) { x=x.previousSibling; } return x; } xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.documentElement; x.removeChild(get_lastchild(x)); |
Note: Internet Explorer will skip white-space text nodes that are generated between nodes (e.g. new-line characters), while Mozilla will not. So, in the example above, the get_lastchild() function checks the node type of the last child node of the parameter.
Element nodes has a nodeType of 1, so if not the last child of the node in the parameter is an element node, it moves to the previous node, and checks if this node is an element node. This continues until the last child node (which must be an element node) is found. This way, the result will be correct in both Internet Explorer and Mozilla.
The deleteData() method is used to remove data from a text node.
The deleteData() method has two parameters:
The following code fragment will remove the first nine characters from the first <title> element in the loaded XML:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.deleteData(0,9); |
The removeAttribute() method is used to remove an attribute node.
The following code fragment will remove all "category" attributes in each <book> element:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName(‘book‘); for(i=0;i<x.length;i++) { x.item(i).removeAttribute(‘category‘); } |
The removeAttributeNode() method is used to remove an attribute node.
The following code fragment will remove all "category" attributes in each <book> element:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName(‘book‘); for(i=0;i<x.length;i++) { attnode=x.item(i).getAttributeNode("category") old_att=x.item(i).removeAttributeNode(attnode); document.write("Removed attribute: " + old_att.name + "<br />"); } |
Output:
Removed attribute: category Removed attribute: category Removed attribute: category Removed attribute: category |
聯(lián)系客服