菜鸟-创作你的创作

XML实例教程:nodeName、nodeValue和nodeType属性

下面给你整理一份 XML 实例教程:nodeName、nodeValue 和 nodeType 属性,通过概念解析、语法示例和实战演示,帮助你理解这些核心 DOM 节点属性的作用。


📘 一、XML 节点基础

DOM(Document Object Model) 中,XML 文档被表示为树状结构,每个元素、属性、文本节点、注释等都是 节点(Node)

每个节点都包含一些通用属性,其中最常用的是:

  1. nodeName
  2. nodeValue
  3. nodeType

📘 二、nodeName 属性

示例

let xmlString = `
<book id="b001">
    <title>XML 入门</title>
    <author>阿杰</author>
</book>`;
let parser = new DOMParser();
let xmlDoc = parser.parseFromString(xmlString, "text/xml");

let bookNode = xmlDoc.getElementsByTagName("book")[0];
console.log(bookNode.nodeName); // 输出 "book"

let titleNode = xmlDoc.getElementsByTagName("title")[0];
console.log(titleNode.nodeName); // 输出 "title"


📘 三、nodeValue 属性

示例

// 文本节点
let titleTextNode = titleNode.firstChild;
console.log(titleTextNode.nodeValue); // 输出 "XML 入门"

// 属性节点
let idAttr = bookNode.getAttributeNode("id");
console.log(idAttr.nodeValue); // 输出 "b001"

// 修改文本内容
titleTextNode.nodeValue = "XML 基础教程";
console.log(titleTextNode.nodeValue); // 输出 "XML 基础教程"


📘 四、nodeType 属性

nodeType 值含义
1元素节点(ELEMENT_NODE)
2属性节点(ATTRIBUTE_NODE)
3文本节点(TEXT_NODE)
8注释节点(COMMENT_NODE)
9文档节点(DOCUMENT_NODE)

示例

console.log(bookNode.nodeType);          // 输出 1
console.log(titleTextNode.nodeType);     // 输出 3
console.log(idAttr.nodeType);            // 输出 2


📘 五、结合示例综合使用

let xmlString = `
<book id="b001">
    <title>XML 入门</title>
    <author>阿杰</author>
</book>`;
let parser = new DOMParser();
let xmlDoc = parser.parseFromString(xmlString, "text/xml");

let bookNode = xmlDoc.getElementsByTagName("book")[0];
console.log("节点名称:", bookNode.nodeName);    // book
console.log("节点类型:", bookNode.nodeType);   // 1

let idAttr = bookNode.getAttributeNode("id");
console.log("属性名称:", idAttr.nodeName);      // id
console.log("属性值:", idAttr.nodeValue);       // b001
console.log("属性类型:", idAttr.nodeType);      // 2

let titleNode = xmlDoc.getElementsByTagName("title")[0];
let titleTextNode = titleNode.firstChild;
console.log("文本内容:", titleTextNode.nodeValue); // XML 入门
console.log("文本节点类型:", titleTextNode.nodeType); // 3


📘 六、总结

  1. nodeName:节点的名称(元素标签名、属性名、文本或注释标识)
  2. nodeValue:节点的值(文本内容或属性值),元素节点一般为 null
  3. nodeType:节点类型的整数表示,方便程序判断
  4. 结合使用可以遍历、读取和修改 XML 文档内容
退出移动版