DOM(Document Object Model)中的节点是文档树的基本构建块,代表文档中的各个部分,如元素、属性、文本等。在 XML 或 HTML 文档中,所有的内容都被表示为节点。

常见的 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