XML DOM åˆ é™¤èŠ‚ç‚¹
removeChild() æ–¹æ³•åˆ é™¤æŒ‡å®šèŠ‚ç‚¹ã€‚
removeAttribute() æ–¹æ³•åˆ é™¤æŒ‡å®šå±žæ€§ã€‚
�试一下 - 实例
下�的实例使用 XML 文件 books.xml。
函数 loadXMLDoc(),ä½�于外部 JavaScript ä¸ï¼Œç”¨äºŽåŠ è½½ XML 文件。
åˆ é™¤å…ƒç´ èŠ‚ç‚¹
本例使用 removeChild() æ�¥åˆ 除第一个 <book> å…ƒç´ ã€‚
åˆ é™¤å½“å‰�å…ƒç´ èŠ‚ç‚¹
本例使用 parentNode å’Œ removeChild() æ�¥åˆ 除当å‰�çš„ <book> å…ƒç´ ã€‚
åˆ é™¤æ–‡æœ¬èŠ‚ç‚¹
本例使用 removeChild() æ�¥åˆ 除第一个 <title> å…ƒç´ çš„æ–‡æœ¬èŠ‚ç‚¹ã€‚
清空文本节点的文本
本例使用 nodeValue() 属性æ�¥æ¸…空第一个 <title> å…ƒç´ çš„æ–‡æœ¬èŠ‚ç‚¹ã€‚
æ ¹æ�®å��ç§°åˆ é™¤å±žæ€§
本例使用 removeAttribute() 从第一个 <book> å…ƒç´ ä¸åˆ 除 "category" 属性。
æ ¹æ�®å¯¹è±¡åˆ 除属性
本例使用 removeAttributeNode() 从所有 <book> å…ƒç´ ä¸åˆ 除所有属性。
åˆ é™¤å…ƒç´ èŠ‚ç‚¹
removeChild() æ–¹æ³•åˆ é™¤æŒ‡å®šçš„èŠ‚ç‚¹ã€‚
å½“ä¸€ä¸ªèŠ‚ç‚¹è¢«åˆ é™¤æ—¶ï¼Œå…¶æ‰€æœ‰å�èŠ‚ç‚¹ä¹Ÿä¼šè¢«åˆ é™¤ã€‚
下é�¢çš„代ç �片段将从载入的 xml ä¸åˆ 除第一个 <book> å…ƒç´ ï¼š
实例
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 把å�˜é‡� y 设置为è¦�åˆ é™¤çš„å…ƒç´ èŠ‚ç‚¹
- 通过使用 removeChild() æ–¹æ³•ä»Žçˆ¶èŠ‚ç‚¹åˆ é™¤å…ƒç´ èŠ‚ç‚¹
åˆ é™¤è‡ªèº« - åˆ é™¤å½“å‰�的节点
removeChild() 方法是唯一å�¯ä»¥åˆ 除指定节点的方法。
当您已导航到需è¦�åˆ é™¤çš„èŠ‚ç‚¹æ—¶ï¼Œå°±å�¯ä»¥é€šè¿‡ä½¿ç”¨ parentNode 属性和 removeChild() 方法æ�¥åˆ 除æ¤èŠ‚ç‚¹ï¼š
实例
x=xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 把å�˜é‡� y 设置为è¦�åˆ é™¤çš„å…ƒç´ èŠ‚ç‚¹
- 通过使用 parentNode 属性和 removeChild() 方法æ�¥åˆ 除æ¤å…ƒç´ 节点
åˆ é™¤æ–‡æœ¬èŠ‚ç‚¹
removeChild() 方法å�¯ç”¨äºŽåˆ 除文本节点:
实例
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 把å�˜é‡� x 设置为第一个 title å…ƒç´ èŠ‚ç‚¹
- 把å�˜é‡� y 设置为è¦�åˆ é™¤çš„æ–‡æœ¬èŠ‚ç‚¹
- 通过使用 removeChild() æ–¹æ³•ä»Žçˆ¶èŠ‚ç‚¹åˆ é™¤å…ƒç´ èŠ‚ç‚¹
ä¸�太常用 removeChild() ä»ŽèŠ‚ç‚¹åˆ é™¤æ–‡æœ¬ã€‚å�¯ä»¥ä½¿ç”¨ nodeValue 属性代替它。请看下一段。
清空文本节点
nodeValue 属性�用于改�或清空文本节点的值:
实例
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="";
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 把å�˜é‡� x 设置为第一个 title å…ƒç´ çš„æ–‡æœ¬èŠ‚ç‚¹
- 使用 nodeValue 属性�清空文本节点的文本
é��历并更改所有 <title> å…ƒç´ çš„æ–‡æœ¬èŠ‚ç‚¹ï¼š
�试一下
æ ¹æ�®å��ç§°åˆ é™¤å±žæ€§èŠ‚ç‚¹
removeAttribute(name) æ–¹æ³•ç”¨äºŽæ ¹æ�®å��ç§°åˆ é™¤å±žæ€§èŠ‚ç‚¹ã€‚
实例:removeAttribute('category')
下é�¢çš„代ç �ç‰‡æ®µåˆ é™¤ç¬¬ä¸€ä¸ª <book> å…ƒç´ ä¸çš„ "category" 属性:
实例
x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 使用 getElementsByTagName() �获� book 节点
- 从第一个 book å…ƒç´ èŠ‚ç‚¹ä¸åˆ 除 "category" 属性
é��åŽ†å¹¶åˆ é™¤æ‰€æœ‰ <book> å…ƒç´ çš„ "category" 属性: å°�试一下
æ ¹æ�®å¯¹è±¡åˆ 除属性节点
removeAttributeNode(node) 方法通过使用 node 对象作为å�‚数,æ�¥åˆ 除属性节点。
实例: removeAttributeNode(x)
下é�¢çš„代ç �ç‰‡æ®µåˆ é™¤æ‰€æœ‰ <book> å…ƒç´ çš„æ‰€æœ‰å±žæ€§ï¼š
实例
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 使用 getElementsByTagName() �获�所有 book 节点
- 检查æ¯�个 book å…ƒç´ æ˜¯å�¦æ‹¥æœ‰å±žæ€§
- 如果在æŸ�个 book å…ƒç´ ä¸å˜åœ¨å±žæ€§ï¼Œåˆ™åˆ 除该属性
点我分享笔记