XML实例教程:nodeName
、nodeValue
和 nodeType
属性
在XML中,文档是由许多不同类型的节点(Node)组成的。每个节点有不同的属性和方法来访问其内容和信息。在XML的DOM(文档对象模型)中,nodeName
、nodeValue
和 nodeType
是常用的属性,它们帮助我们了解和操作XML文档中的节点。
1. nodeName
属性
nodeName
属性返回当前节点的名称。这个属性是所有节点(元素节点、属性节点、文本节点等)通用的,能够帮助我们知道节点的类型。
- 元素节点(Element):返回元素的标签名称。
- 属性节点(Attribute):返回属性的名称。
- 文本节点(Text):返回
#text
,即表示文本内容的节点。
1.1 示例:元素节点
<book>
<title>XML教程</title>
<author>John Doe</author>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var titleNode = xmlDoc.getElementsByTagName("title")[0];
console.log(titleNode.nodeName); // 输出: "title"
在这个例子中,titleNode.nodeName
将返回 title
,表示该节点是 <title>
元素。
1.2 示例:属性节点
<book category="XML教程">
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var categoryNode = xmlDoc.documentElement.getAttributeNode("category");
console.log(categoryNode.nodeName); // 输出: "category"
在这个例子中,categoryNode.nodeName
将返回 category
,表示属性的名称。
1.3 示例:文本节点
<book>
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var titleTextNode = xmlDoc.getElementsByTagName("title")[0].firstChild;
console.log(titleTextNode.nodeName); // 输出: "#text"
对于文本节点,nodeName
返回 #text
,表示这是一个文本节点。
2. nodeValue
属性
nodeValue
属性用于获取或设置节点的值。对于不同类型的节点,它的含义也有所不同:
- 元素节点(Element):
nodeValue
返回null
,因为元素节点本身没有值,只有子元素或文本内容。 - 属性节点(Attribute):
nodeValue
返回属性的值。 - 文本节点(Text):
nodeValue
返回节点的文本内容。
2.1 示例:元素节点
<book>
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var titleNode = xmlDoc.getElementsByTagName("title")[0];
console.log(titleNode.nodeValue); // 输出: null
对于元素节点,nodeValue
返回 null
。
2.2 示例:属性节点
<book category="XML教程">
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var categoryNode = xmlDoc.documentElement.getAttributeNode("category");
console.log(categoryNode.nodeValue); // 输出: "XML教程"
对于属性节点,nodeValue
返回属性的值,在这个例子中是 "XML教程"
。
2.3 示例:文本节点
<book>
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var titleTextNode = xmlDoc.getElementsByTagName("title")[0].firstChild;
console.log(titleTextNode.nodeValue); // 输出: "XML教程"
对于文本节点,nodeValue
返回节点的文本内容,这里是 "XML教程"
。
3. nodeType
属性
nodeType
属性返回节点的类型,它是一个数字,代表不同类型的节点。常见的节点类型包括:
- 元素节点(Element):
nodeType
返回1
。 - 属性节点(Attribute):
nodeType
返回2
。 - 文本节点(Text):
nodeType
返回3
。 - 注释节点(Comment):
nodeType
返回8
。
3.1 示例:元素节点
<book>
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var titleNode = xmlDoc.getElementsByTagName("title")[0];
console.log(titleNode.nodeType); // 输出: 1
对于元素节点,nodeType
返回 1
。
3.2 示例:属性节点
<book category="XML教程">
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var categoryNode = xmlDoc.documentElement.getAttributeNode("category");
console.log(categoryNode.nodeType); // 输出: 2
对于属性节点,nodeType
返回 2
。
3.3 示例:文本节点
<book>
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var titleTextNode = xmlDoc.getElementsByTagName("title")[0].firstChild;
console.log(titleTextNode.nodeType); // 输出: 3
对于文本节点,nodeType
返回 3
。
3.4 示例:注释节点
<!-- 这是一个注释 -->
<book>
<title>XML教程</title>
</book>
JavaScript 代码:
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var commentNode = xmlDoc.firstChild;
console.log(commentNode.nodeType); // 输出: 8
对于注释节点,nodeType
返回 8
。
4. 总结
nodeName
:返回节点的名称。- 元素节点:返回标签名称。
- 属性节点:返回属性名称。
- 文本节点:返回
#text
。
nodeValue
:返回节点的值。- 元素节点:返回
null
。 - 属性节点:返回属性值。
- 文本节点:返回文本内容。
- 元素节点:返回
nodeType
:返回节点的类型(数字表示)。- 元素节点:
1
。 - 属性节点:
2
。 - 文本节点:
3
。 - 注释节点:
8
。
- 元素节点:
这些属性帮助我们在处理XML文档时获取节点的基本信息,特别是在操作和遍历DOM树时,它们是非常重要的工具。
发表回复