replaceChild() 方法替换指定节点。
nodeValue 属性替换文本节点中的文本。
实例
下面的例子使用 XML 文件 books.xml。
函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。替换元素节点本例使用 replaceChild() 来替换第一个 <book> 节点。替换文本节点中的数据本例使用 nodeValue 属性来替换文本节点中的数据。
替换元素节点
replaceChild() 方法用于替换节点。
下面的代码片段替换第一个 <book> 元素:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement; //创建一个 book 元素、一个 title 元素,以及一个 text 节点 newNode=xmlDoc.createElement("book"); newTitle=xmlDoc.createElement("title"); newText=xmlDoc.createTextNode("Hello World"); //向 title 节点添加文本节点 newTitle.appendChild(newText); //向 book 节点添加 title 节点 newNode.appendChild(newTitle); y=xmlDoc.getElementsByTagName("book")[0]; //用这个新节点替换第一个 book 节点 x.replaceChild(newNode,y);
例子解释:
- 通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
- 创建一个新的元素节点 <book>
- 创建一个新的元素节点 <title>
- 创建一个新的文本节点,带有文本 “Hello World”
- 向新元素节点 <title> 追加这个新文本节点
- 向新元素节点 <book> 追加这个新元素节点 <title>
- 用新的 <book> 元素节点替换第一个 <book> 元素节点
HTML
x
38
38
1
<html>
2
<head>
3
<script type="text/javascript" src="/example/xdom/loadxmldoc.js">
4
</script>
5
</head>
6
<body>
7
8
<script type="text/javascript">
9
xmlDoc=loadXMLDoc("/example/xdom/books.xml");
10
11
x=xmlDoc.documentElement;
12
13
//创建一个 book 元素、一个 title 元素,以及一个 text 节点
14
newNode=xmlDoc.createElement("book");
15
newTitle=xmlDoc.createElement("title");
16
newText=xmlDoc.createTextNode("Hello World");
17
18
//向 title 节点添加文本节点
19
newTitle.appendChild(newText);
20
21
//向 book 节点添加 title 节点
22
newNode.appendChild(newTitle);
23
24
y=xmlDoc.getElementsByTagName("book")[0];
25
26
//用这个新节点替换第一个 book 节点
27
x.replaceChild(newNode,y);
28
29
z=xmlDoc.getElementsByTagName("title");
30
for (i=0;i<z.length;i++)
31
{
32
document.write(z[i].childNodes[0].nodeValue);
33
document.write("<br />");
34
}
35
</script>
36
</body>
37
</html>
38
替换文本节点中的数据
replaceData() 方法用于替换文本节点中的数据。
replaceData() 方法有三个参数:
- offset – 在何处开始替换字符。Offset 值以 0 开始。
- length – 要替换多少字符
- string – 要插入的字符串
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.replaceData(0,8,"hello");
例子解释:
- 通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
- 获取第一个 <title> 元素节点的文本节点
- 使用 replaceDat 方法把文本节点的前 8 个字符替换为 “hello”
HTML
xxxxxxxxxx
1
21
21
1
<html>
2
<head>
3
<script type="text/javascript" src="/example/xdom/loadxmldoc.js">
4
</script>
5
</head>
6
<body>
7
8
<script type="text/javascript">
9
xmlDoc=loadXMLDoc("/example/xdom/books.xml");
10
11
var x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
12
document.write(x.nodeValue);
13
x.replaceData(0,8,"Hello");
14
15
document.write("<br />");
16
document.write(x.nodeValue);
17
18
</script>
19
</body>
20
</html>
21
使用 nodeValue 属性
用 nodeValue 属性来替换文本节点中数据会更加容易。
下面的代码片段将用 “Easy Italian” 替换第一个 <title> 元素中的文本节点值:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="Hello World";
例子解释:
- 通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
- 获取第一个 <title> 元素节点的文本节点
- 使用 nodeValue 属性来更改这个文本节点的文本
HTML
xxxxxxxxxx
1
21
21
1
<html>
2
<head>
3
<script type="text/javascript" src="/example/xdom/loadxmldoc.js">
4
</script>
5
</head>
6
<body>
7
8
<script type="text/javascript">
9
xmlDoc=loadXMLDoc("/example/xdom/books.xml");
10
11
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
12
document.write(x.nodeValue);
13
x.nodeValue="Hello World";
14
15
document.write("<br />");
16
document.write(x.nodeValue);
17
18
</script>
19
</body>
20
</html>
21
您可以在 改变节点 这一节中阅读更多有关更改节点值的内容。
阅读剩余 81%
作者:terry,如若转载,请注明出处:https://www.web176.com/xmldom/10829.html