常见的 DOM 节点类型:
1. 元素节点(Element Node):
- 代表文档中的元素,如 <div>、<p>、<a> 等。
- 具有标签名、属性、子节点等特性。
2. 属性节点(Attribute Node):
- 代表元素的属性。
- 属性节点是元素节点的一部分。
3. 文本节点(Text Node):
- 代表元素内的文本内容。
- 文本节点是元素节点的一部分。
4. 注释节点(Comment Node):
- 代表文档中的注释。
- 注释节点的内容不会被解析为文档的一部分。
5. 文档节点(Document Node):
- 代表整个文档,是文档树的根节点。
- 在 DOM 中,document 对象就是文档节点。
DOM 节点的常用属性和方法:
元素节点(Element Node):
- tagName: 获取元素的标签名。
- attributes: 获取元素的属性列表。
- parentNode: 获取元素的父节点。
- childNodes: 获取元素的所有子节点。
var element = document.getElementById("example");
console.log(element.tagName);
console.log(element.attributes);
console.log(element.parentNode);
console.log(element.childNodes);
属性节点(Attribute Node):
- nodeName: 获取属性名。
- nodeValue: 获取属性值。
- ownerElement: 获取拥有该属性的元素节点。
var attribute = element.attributes[0];
console.log(attribute.nodeName);
console.log(attribute.nodeValue);
console.log(attribute.ownerElement);
文本节点(Text Node):
- nodeValue: 获取文本内容。
var textNode = element.childNodes[0];
console.log(textNode.nodeValue);
示例:
考虑以下简单的 XML 片段:
<book>
<title>Introduction to XML</title>
<author>John Doe</author>
</book>
对应的 DOM 结构:
- 元素节点 <book> 包含两个子元素节点 <title> 和 <author>。
- 每个子元素节点都包含一个文本节点,分别包含标题和作者的信息。
在 JavaScript 中,可以使用 DOM 操作这个结构:
// 获取根元素
var bookElement = document.getElementsByTagName("book")[0];
// 获取子元素节点
var titleElement = bookElement.getElementsByTagName("title")[0];
var authorElement = bookElement.getElementsByTagName("author")[0];
// 获取文本节点
var titleText = titleElement.childNodes[0].nodeValue;
var authorText = authorElement.childNodes[0].nodeValue;
console.log("Title:", titleText);
console.log("Author:", authorText);
这个示例演示了如何使用 DOM 获取元素、属性和文本节点的信息。DOM 提供了一组强大的工具,使得可以以编程方式访问和操作文档的各个部分。
转载请注明出处:http://www.zyzy.cn/article/detail/14557/XML DOM