XML DOM 创建节点
�试一下 - 实例
下�的实例使用 XML 文件 books.xml。
函数 loadXMLDoc(),ä½�于外部 JavaScript ä¸ï¼Œç”¨äºŽåŠ è½½ XML 文件。
åˆ›å»ºå…ƒç´ èŠ‚ç‚¹
本例使用 createElement() æ�¥åˆ›å»ºä¸€ä¸ªæ–°çš„å…ƒç´ èŠ‚ç‚¹ï¼Œå¹¶ä½¿ç”¨ appendChild() æŠŠå®ƒæ·»åŠ åˆ°ä¸€ä¸ªèŠ‚ç‚¹ä¸ã€‚
使用 createAttribute 创建属性节点
本例使用 createAttribute() æ�¥åˆ›å»ºä¸€ä¸ªæ–°çš„属性节点,并使用 setAttributeNode() 把它æ�’å…¥ä¸€ä¸ªå…ƒç´ ä¸ã€‚
使用 setAttribute 创建属性节点
本例使用 setAttribute() ä¸ºä¸€ä¸ªå…ƒç´ åˆ›å»ºä¸€ä¸ªæ–°çš„å±žæ€§ã€‚
创建文本节点
本例使用 createTextNode() æ�¥åˆ›å»ºä¸€ä¸ªæ–°çš„æ–‡æœ¬èŠ‚ç‚¹ï¼Œå¹¶ä½¿ç”¨ appendChild() æŠŠå®ƒæ·»åŠ åˆ°ä¸€ä¸ªå…ƒç´ ä¸ã€‚
创建 CDATA section 节点
本例使用 createCDATAsection() æ�¥åˆ›å»ºä¸€ä¸ª CDATA section 节点,并使用 appendChild() æŠŠå®ƒæ·»åŠ åˆ°ä¸€ä¸ªå…ƒç´ ä¸ã€‚
创建注释节点
本例使用 createComment() æ�¥åˆ›å»ºä¸€ä¸ªæ³¨é‡ŠèŠ‚ç‚¹ï¼Œå¹¶ä½¿ç”¨ appendChild() æŠŠå®ƒæ·»åŠ åˆ°ä¸€ä¸ªå…ƒç´ ä¸ã€‚
åˆ›å»ºæ–°çš„å…ƒç´ èŠ‚ç‚¹
createElement() æ–¹æ³•åˆ›å»ºä¸€ä¸ªæ–°çš„å…ƒç´ èŠ‚ç‚¹ï¼š
实例
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- åˆ›å»ºä¸€ä¸ªæ–°çš„å…ƒç´ èŠ‚ç‚¹ <edition>
- å�‘第一个 <book> å…ƒç´ è¿½åŠ è¿™ä¸ªå…ƒç´ èŠ‚ç‚¹
é��历并å�‘所有 <book> å…ƒç´ æ·»åŠ ä¸€ä¸ªå…ƒç´ ï¼š
�试一下
创建新的属性节点
createAttribute() 用于创建一个新的属性节点:
实例
newatt=xmlDoc.createAttribute("edition");
newatt.nodeValue="first";
x=xmlDoc.getElementsByTagName("title");
x[0].setAttributeNode(newatt);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 创建一个新的属性节点 "edition"
- 设置属性节点的值为 "first"
- å�‘第一个 <title> å…ƒç´ æ·»åŠ è¿™ä¸ªæ–°çš„å±žæ€§èŠ‚ç‚¹
é��历所有的 <title> å…ƒç´ ï¼Œå¹¶æ·»åŠ ä¸€ä¸ªæ–°çš„å±žæ€§èŠ‚ç‚¹ï¼š å°�试一下
注æ„�:如果该属性已å˜åœ¨ï¼Œåˆ™è¢«æ–°å±žæ€§æ›¿ä»£ã€‚
使用 setAttribute() 创建属性
由于 setAttribute() 方法å�¯ä»¥åœ¨å±žæ€§ä¸�å˜åœ¨çš„æƒ…况下创建新的属性,我们å�¯ä»¥ä½¿ç”¨è¿™ä¸ªæ–¹æ³•æ�¥åˆ›å»ºä¸€ä¸ªæ–°çš„属性。
实例
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 为第一个 <book> å…ƒç´ è®¾ç½®ï¼ˆåˆ›å»ºï¼‰å€¼ä¸º "first" çš„ "edition" 属性
é��历所有的 <title> å…ƒç´ å¹¶æ·»åŠ ä¸€ä¸ªæ–°å±žæ€§ï¼š å°�试一下
创建文本节点
createTextNode() 方法创建一个新的文本节点:
实例
newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("first");
newel.appendChild(newtext);
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- åˆ›å»ºä¸€ä¸ªæ–°å…ƒç´ èŠ‚ç‚¹ <edition>
- 创建一个新的文本节点,其文本是 "first"
- å�‘è¿™ä¸ªå…ƒç´ èŠ‚ç‚¹è¿½åŠ æ–°çš„æ–‡æœ¬èŠ‚ç‚¹
- å�‘第一个 <book> å…ƒç´ è¿½åŠ æ–°çš„å…ƒç´ èŠ‚ç‚¹
å�‘所有的 <book> å…ƒç´ æ·»åŠ ä¸€ä¸ªå¸¦æœ‰æ–‡æœ¬èŠ‚ç‚¹çš„å…ƒç´ èŠ‚ç‚¹ï¼š å°�试一下
创建 CDATA Section 节点
createCDATASection() 方法创建一个新的 CDATA section 节点。
实例
newCDATA=xmlDoc.createCDATASection("Special Offer & Book Sale");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newCDATA);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 创建一个新的 CDATA section 节点
- å�‘第一个 <book> å…ƒç´ è¿½åŠ è¿™ä¸ªæ–°çš„ CDATA section 节点
é��历并å�‘所有 <book> å…ƒç´ æ·»åŠ ä¸€ä¸ª CDATA section:
�试一下
创建注释节点
createComment() 方法创建一个新的注释节点。
实例
newComment=xmlDoc.createComment("Revised March 2008");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newComment);
�试一下 »
实例解释:
- 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc ä¸
- 创建一个新的注释节点
- æŠŠè¿™ä¸ªæ–°çš„æ³¨é‡ŠèŠ‚ç‚¹è¿½åŠ åˆ°ç¬¬ä¸€ä¸ª <book> å…ƒç´
循环并å�‘所有 <book> å…ƒç´ æ·»åŠ ä¸€ä¸ªæ³¨é‡ŠèŠ‚ç‚¹ï¼š
�试一下
点我分享笔记