深度优先遍历节点树:
// 创建 XML 字符串
var xmlString = '<bookstore><book><title>Introduction to XML</title><author>John Doe</author></book></bookstore>';
// 使用 DOMParser 解析 XML 字符串
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, 'text/xml');
// 递归函数用于深度优先遍历节点树
function traverseNode(node) {
// 输出节点名称和类型
console.log('Node Name: ' + node.nodeName + ', Type: ' + node.nodeType);
// 如果节点是元素节点,继续遍历其子节点
if (node.nodeType == 1) {
var children = node.childNodes;
for (var i = 0; i < children.length; i++) {
traverseNode(children[i]);
}
}
}
// 从根节点开始遍历整个文档
traverseNode(xmlDoc.documentElement);
使用节点列表遍历:
// 创建 XML 字符串
var xmlString = '<bookstore><book><title>Introduction to XML</title><author>John Doe</author></book></bookstore>';
// 使用 DOMParser 解析 XML 字符串
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, 'text/xml');
// 获取所有 <book> 元素的节点列表
var bookNodes = xmlDoc.getElementsByTagName('book');
// 遍历节点列表并输出每个元素的标题
for (var i = 0; i < bookNodes.length; i++) {
var titleElement = bookNodes[i].getElementsByTagName('title')[0];
console.log('Title: ' + titleElement.textContent);
}
这些示例中,第一个示例使用深度优先递归遍历整个节点树,输出每个节点的名称和类型。第二个示例使用节点列表遍历,获取所有 <book> 元素的列表,然后遍历列表并输出每个元素的标题。
遍历节点树的方式可以根据实际需求选择深度优先遍历、广度优先遍历或者其他遍历方式。这取决于对 XML 文档结构的具体处理需求。
转载请注明出处:http://www.zyzy.cn/article/detail/12152/XML