XML DOM 高级:修订间差异
无编辑摘要 |
无编辑摘要 |
||
| 第5行: | 第5行: | ||
== XML DOM == | |||
DOM 把 XML 文档视为一种树结构。通过这个 DOM 树,可以访问所有的元素。可以修改它们的内容(文本以及属性),而且可以创建新的元素。元素,以及它们的文本和属性,均被视为节点。 <br> | |||
在本教程的较早章节中,我们介绍了 XML DOM,并使用了 XML DOM 的 getElementsByTagName() 从 DOM 树中取回数据。<br> | |||
在本节中,我们将讲解一些其他较常用的 XML DOM 方法。在本例中,我们使用 XML 文件 books.xml,并使用一个 JavaScript 函数把 XML 文件加载到名为 xmlDoc 的 DOM 对象中。<br> | |||
如需学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程。<br> | |||
== 获取元素的值 == | |||
<br> | |||
下面的代码检索第一个 <title> 元素的文本值: | |||
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];<br> | |||
txt=x.nodeValue;结果:txt = "Harry Potter"<br> | |||
== 获取属性的值 == | |||
下面的代码检索第一个 <title> 元素的 "lang" 属性的文本值:<br> | |||
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");结果:txt = "en"<br> | |||
== 改变元素的值 == | |||
下面的代码改变第一个 <title> 元素的文本值:<br> | |||
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];<br> | |||
x.nodeValue="Easy Cooking";<br> | |||
== 改变属性的值 == | |||
setAttribute() 方法可用于改变已有属性的值,或创建一个新属性。<br> | |||
下面的代码向每个 <book> 元素添加了名为 "edition" 的新属性(值是 "first"): | |||
<br> | |||
x=xmlDoc.getElementsByTagName("book");<br> | |||
for(i=0;i<x.length;i++)<br> | |||
{ | |||
x[i].setAttribute("edition","first");<br> | |||
}<br> | |||
== 创建元素 == | |||
createElement() 方法创建新的元素节点。<br> | |||
createTextNode() 方法创建新的文本节点。<br> | |||
appendChild() 方法向节点添加子节点(在最后一个子节点之后)。<br> | |||
如需创建带有文本内容的新元素,需要同时创建元素节点和文本节点。<br> | |||
下面的代码创建了一个元素 (<edition>),然后把它添加到第一个 <book> 元素中:<br> | |||
newel=xmlDoc.createElement("edition");<br> | |||
newtext=xmlDoc.createTextNode("First");<br> | |||
newel.appendChild(newtext);<br> | |||
x=xmlDoc.getElementsByTagName("book");<br> | |||
x[0].appendChild(newel); | |||
例子解释:<br> | |||
创建 <edition> 元素 <br> | |||
创建值为 "First" 的文本节点 <br> | |||
把这个文本节点追加到 <edition> 元素 <br> | |||
把 <edition> 元素追加到第一个 <book> 元素 <br> | |||
== 删除元素 == | |||
removeChild() 方法删除指定的节点(或元素)。<br> | |||
下面的代码片段将删除第一个 <book> 元素中的第一个节点:<br> | |||
x=xmlDoc.getElementsByTagName("book")[0]; | |||
<br> | |||
x.removeChild(x.childNodes[0]);<br> | |||
注释:上例的结果可能会根据所用的浏览器而不同。Firefox 把新行字符当作空的文本节点,而 Internet Explorer 不是这样。<br> | |||
2009年7月30日 (四) 15:49的最新版本
导航: 上一页 | ASP | PHP | JSP | HTML | CSS | XHTML | aJAX | Ruby | JAVA | XML | Python | ColdFusion
XML DOM[ ]
DOM 把 XML 文档视为一种树结构。通过这个 DOM 树,可以访问所有的元素。可以修改它们的内容(文本以及属性),而且可以创建新的元素。元素,以及它们的文本和属性,均被视为节点。
在本教程的较早章节中,我们介绍了 XML DOM,并使用了 XML DOM 的 getElementsByTagName() 从 DOM 树中取回数据。
在本节中,我们将讲解一些其他较常用的 XML DOM 方法。在本例中,我们使用 XML 文件 books.xml,并使用一个 JavaScript 函数把 XML 文件加载到名为 xmlDoc 的 DOM 对象中。
如需学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程。
获取元素的值[ ]
下面的代码检索第一个 <title> 元素的文本值:
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
txt=x.nodeValue;结果:txt = "Harry Potter"
获取属性的值[ ]
下面的代码检索第一个 <title> 元素的 "lang" 属性的文本值:
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");结果:txt = "en"
改变元素的值[ ]
下面的代码改变第一个 <title> 元素的文本值:
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Cooking";
改变属性的值[ ]
setAttribute() 方法可用于改变已有属性的值,或创建一个新属性。
下面的代码向每个 <book> 元素添加了名为 "edition" 的新属性(值是 "first"):
x=xmlDoc.getElementsByTagName("book");
for(i=0;i<x.length;i++)
{
x[i].setAttribute("edition","first");
}
创建元素[ ]
createElement() 方法创建新的元素节点。
createTextNode() 方法创建新的文本节点。
appendChild() 方法向节点添加子节点(在最后一个子节点之后)。
如需创建带有文本内容的新元素,需要同时创建元素节点和文本节点。
下面的代码创建了一个元素 (<edition>),然后把它添加到第一个 <book> 元素中:
newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("First");
newel.appendChild(newtext);
x=xmlDoc.getElementsByTagName("book");
x[0].appendChild(newel);
例子解释:
创建 <edition> 元素
创建值为 "First" 的文本节点
把这个文本节点追加到 <edition> 元素
把 <edition> 元素追加到第一个 <book> 元素
删除元素[ ]
removeChild() 方法删除指定的节点(或元素)。
下面的代码片段将删除第一个 <book> 元素中的第一个节点:
x=xmlDoc.getElementsByTagName("book")[0];
x.removeChild(x.childNodes[0]);
注释:上例的结果可能会根据所用的浏览器而不同。Firefox 把新行字符当作空的文本节点,而 Internet Explorer 不是这样。