如何匹配来自 for 循环的输出中的文本 - Angular/Javascript

问题描述 投票:0回答:1

我有一个 xml,通过使用 for 循环和其他逻辑从中获取了所有标签名称。现在我需要从控制台中 for 循环的输出值中匹配单词“作者”。如果任何输出值与“作者”匹配,则需要设置一个条件。下面是代码

app.component.ts

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)
    }
  }
}
   
angular
1个回答
0
投票

我们可以将输出转换为数组,然后使用filter过滤掉所有作者,然后使用map我们只能得到内部文本。

Stackblitz 演示

© www.soinside.com 2019 - 2024. All rights reserved.