我有一个 xml,通过使用 for 循环和其他逻辑从中获取了所有标签名称。现在我需要从控制台中 for 循环的输出值中匹配单词“作者”。如果任何输出值与“作者”匹配,则需要设置一个条件。下面是代码
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'project';
ngOnInit(): void {
let xmldata = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
var node = (new DOMParser()).parseFromString(xmldata, "text/xml").documentElement;
var nodes = node.querySelectorAll("*");
// console.log(nodes[4].tagName)
for (var i = 0; i < nodes.length; i++) {
var text = null;
if (nodes[i].childNodes.length == 1 && nodes[i].childNodes[0].nodeType == 3) //if nodeType == text node
text = nodes[i].textContent; //get text of the node
// console.log("TageName : ", nodes[i].tagName, ", Text : ", text);
console.log(nodes[i].tagName)
}
}
}
我们可以将输出转换为数组,然后使用filter过滤掉所有作者,然后使用map我们只能得到内部文本。